OTA打包工具
来源:互联网 发布:少女前线枪娘数据大全 编辑:程序博客网 时间:2024/06/08 10:31
在build/tools/releasetools文件夹中提供的 ota_from_target_files工具可以构建两种包:全镜像包和增量包.这些工作把Android构建系统提供的目标文件.zip文件作为他们的输入.
全更新
全更新就是把编译后设备的所有的状态(system,boot和recovery分区)都被包含到包里.只要设备能够接受更新包并且启动recovery系统,不管当前设备的状态是什么样的,包就能够安装整个系统.
例子:使用release工具为假设的tardis设备构建一个完整的更新包:
# first, build the target-files .zip% . build/envsetup.sh && lunch tardis-eng% mkdir dist_output% make dist DIST_DIR=dist_output [...]% ls -l dist_output/*target_files*-rw-r----- 1 user eng 69965275 Sep 29 15:51 tardis-target_files.zip
目标文件.zip包含你需要的构建OTA包的所有东西.
% ./build/tools/releasetools/ota_from_target_files \ dist_output/tardis-target_files.zip ota_update.zipunzipping target target-files...done.% ls -l ota_update.zip-rw-r----- 1 user eng 62236561 Sep 29 15:58 ota_update.zip
ota_update.zip现在已经可以用于测试设备了.对于用户设备来说,要生成和使用你自己的密钥.(后面介绍)
增量更新
一个增量更新包含着要应用到设备中已存在的数据的补丁.这会使得更新包比较小:
- 没有被改变的文件不必包含在更新包中
- 被改变的文件如果和之前版本比较相似的话,更新包仅仅需要包含两个文件不同部分的编码即可.
- 你仅仅可以在使用之前版本构建的设备上安装增量更新包.为了构建一个增量更新包,你需要来自上一个版本的目标文件.zip和新要构建的目标文件.zip.
% ./build/tools/releasetools/ota_from_target_files \ -i PREVIOUS-tardis-target_files.zip \ # make incremental from this older version dist_output/tardis-target_files.zip incremental_ota_update.zipunzipping target target-files...unzipping source target-files... [...]done.% ls -l incremental_ota_update.zip-rw-r----- 1 user eng 1175314 Sep 29 16:10 incremental_ota_update.zip
这次构建和上一个非常相似,增量更新包比相应的全更新包要小的多.
注意:为了为后续的更新包生成基于块的OTA,向ota_from_target_files中传递–block选项.
仅仅向运行相同的上一个版本包的设备发行增量包才能正常运行.如果在运行其他构建版本的设备中尝试安装增量包的花就会导致在recovery模式中的错误.在这个时候重启设备就会返回用户之前的系统;在创建他们的时候,更新包验证所有文件的之前的状态,如果发生这种情况,该设备不会留在半升级状态。
更新包
一个更新包(ota_update.zip,incremental_ota_update.zip)是一个.zip文件,他包含可执行二进制文件META-INF/com/google/android/update-binary.在验证完成更新包的签名之后,recovery将这个二进制文件提取到/tmp目录下并运行该程序,同时,将下面的参数传递过去:
- 更新二进制API版本号.如果传递到更新二进制的参数改变了,这个号就会被增加
- 命令管道的文件描述符.更新程序可以使用这个管道来想recovery二进制发送命令(大多数都是UI改变,例如更新进度条等)
更新包.zip文件的文件名
一个recovery包可以使用任何静态链接的二进制文件作为更新二进制包.OTA包构建工具使用updater程序(源码位于bootable/recovery/updater),该文件提供了一个简单的可以做任何安装工作的脚本语言.你可以替代任何运行在设备上的其他二进制程序.
对于updater程序的细节,编写语法和内置函数,后面会有详细介绍.
- OTA打包工具
- Android 5.x OTA Update官方文档(二,OTA 打包工具ota_from_target_files)
- Android OTA查分包打包方法
- Ota
- OTA
- OTA
- 打包工具
- 打包工具
- 工具打包
- android ota 升级包制作分析 (3 打包流程)
- Android OTA升级包制作脚本详解(三,打包)
- 输出编译ota升级包时的打包参数
- Marketer 渠道打包工具,可视化打包工具,快速打包工具
- android ota 升级包制作分析 (5 工具)
- iphone上 ota在线托管工具 http://fir.im/
- OTA升级包制作工具处理过程分析
- Android多渠道打包工具下一代打包工具
- java打包工具:Ant工具
- MyBatis3和Spring4基于接口编程的例子
- 仿支付宝“数字增长动画”
- Android-->RatingBar自定义大小,自定义样式(图片)
- Android初识-JSON字符串解析详解
- 打造开发神器—Android Studio上的常用5个插件介绍
- OTA打包工具
- mysqlscript文档翻译
- js数组组合
- redis-高级应用
- java实现选择排序算法,sort
- oracle union 和union all 的区别
- GridBagLayout布局管理器学习总结
- QuickSort排序
- $(document).ready(function() {});写与不写有什么区别 与$(function() {});区别