About Android OTA system update
来源:互联网 发布:湖南软件检测 编辑:程序博客网 时间:2024/06/05 22:57
OTA升级是Android系统提供的标准软件升级方式。它功能强大,可以无损失升级系统,主要通过网络[例如WIFI、3G]自动下载OTA升级包、自动升级,但是也支持通过下载OTA升级包到SD卡升级。
一、服务器
OTA升级搭建OTA服务器是比较基本的,我们需要把更新软件放到服务器供用户下载更新,但是做一个完整的OTA服务器却非常复杂,因为这要涉及到下载遵循的标准,软件的管理,下载的计费,安全认证等问题。
二、差异包
差异包的生成也是OTA升级的一个重要步骤,编译过系统之后,执行下面的命令:
$make otapackage
即可获得:out/target/product/{product_name}/ {product_name}-ota-eng.{uid}.zip
将该文件改名为update.zip放到T卡根目录, 即可开始recovery模式下的 OTA 升级。创建需要的OTA update image(包括全部更新及部分更新)的工具Releasetools ,具体路径build/tools/releasetools/用以与build system配合,生成对应的full/incremental的update.zip包,对应的编译脚本在build/core/main.mk及Makefile, 搜索target-files-package关键字build/tools/releasetools
├── check_target_files_signatures -- 用来检查cert和update包之间的关系
├── common.py -- 各种工具类,参数处理/META文件处理/image生成/signcertification/patch file 操作等等
├── edify_generator.py -- 用来生成edify脚本, 关于edify,参照bootable/recovery/edify/下的readme及tjworld,主要是给manufacturer提供一个简单的shell语言 来进行必要的recovery操作. 后面会单独写篇文章单独描述一下edify的使用方法
├── img_from_target_files -- 由生成target zip file的制作被fastboot update命令所使用的xxx.img文件
├── ota_from_target_files -- 生成经过各种签名的TFP更新包
└── sign_target_files_apks -- 用来对apk或者生成测zip更新包进行签名。
此工具都不提供boot.img和update image之间的交互操作, 所以在制作update image时,要手动确保你制作的update image能够被安装在预先已经有boot image的device上。
re-sign apks是为了apk的security, 用各个oem厂商的签名替代Test的签名.签名是使用openssl生成的带public exponent3 的 2048-bit RSA keys.
Related filesystem partition谈到Update,不得不提到android的分区情况(参见各个OEM的配置)。
boot, 包含以下文件:metadata, kernel image,ramdisk, optional 2nd-stage bootloader image, 由mkbooting(system/core/mkbooting)生成system, 系统程序及apk等等。
data, 用户数据, 会被factory reset clear
recovery, 为了恢复misc, 包含Bootloader Control Block (BCB), recovery console通过它与bootloader交互cache, 用来支持update的temp分区,及被特定apk作为temp来使。
还有一个重要的文件recovery.fstab, 用来为recovery console及releasetools提供能够加载的文件系统及对应的mount node。
三、升级过程
下载后一定要放在SD根目录,即/sdcard/update.zip。
update.xml文件放在服务器上,当客户端请求的参数正确时,返回相应的信息。
update.xml的内容,根据需要可以添加;Md5需要校验下载后包的完整性。updatepath为实际的下载地址
至少需要如下字段:
<ver>android3.2</ver>
<md5>xxx</md5>
<updatepath>http://xxxx/update.zip</updatepath>
- About Android OTA system update
- android ota update
- Android学习之OTA Update
- Android学习之OTA Update
- [Android]Life of an OTA update steps
- Android OTA增量包update.zip的生成
- Android 5.x OTA Update官方文档(一,关于OTA 升级)
- Android 5.x OTA Update官方文档(二,OTA 打包工具ota_from_target_files)
- Android 5.x OTA Update官方文档(三、模块式OTA)
- Android 5.x OTA Update官方文档(四、OTA更新包解读)
- 转载:Android 5.x OTA Update官方文档(一,关于OTA 升级)
- Android A/B System OTA分析(一)概览
- Android A/B System OTA分析(一)概览
- android ota
- android OTA
- android OTA
- 如何做OTA Update程序
- Android OTA升级原理和流程分析(一)--update.zip包的制作
- C++ vector 之 erase 多个元素的两种常用方法
- eclipse + cocos2d-x 创建android工程(c++开发环境)
- Mac系统下MonoDevelop界面乱码及不能显示中文
- 多态小例子
- Application context和Activity context的区别
- About Android OTA system update
- Linux下产生随机密码10方法
- 50个java编程程序之四
- 项目经理必备技能-数据库设计(好帖目录,持续更新)
- enum在vs2010里的switch的便利之处
- SH4 inline assemble
- Ubuntu12.04系统下写你的第一个Django1.5应用(二)--admin
- Ubuntu JDK安装配置(存起来看)
- C中的静态存储区和动态存储区