简介
主要是从一个输入的中间压缩包,生成OTA升级包
|
|
常用的参数:12345678-k 指定签名文件,默认为"build/target/product/security/testkey"-i 指定源文件-p 指定编译主机可执行文件路径-v 冗余信息打印-w 清除用户数据-e 定义额外运行的脚本-m 定义采用的脚本格式,目前有两种,amend & edify, 其中amend为较老的格式。-s 定义额外运行的脚本的路径
源码分析
入口:main
按照python惯例,单独执行的代码执行从main开始:
- 将用户设定的 Option 存入 OPTIONS 变量中。
- 解开输入包
- 设定输出文件,如果要签名(our case),则还需要一个临时输出文件。
- 根据参数,调用全量包或差分包创建 ZIP 创建函数。
- WriteFullOTAPackage 全量包生成
主要函数 WriteFullOTAPackage
- 获得脚本生成器,他们的实现见脚本 edify_generator.py 等
- 获得一些环境变量,来自android 环境变量。
- 创建连接
- MakeRecoveryPatch : 在输出 ZIP包中生成一个patch
- 在输出 ZIP包中生成一个脚本:recovery/etc/install-recovery.sh , 它最后会位于system/etc/install-recovery.sh
- 设置 system 目录下文件的权限及属主等。
- script.WriteRawImage(“boot”, “boot.img”) 在脚本中增加语句,将 boot.img 写到 boot 分区。
将前面生成的脚本输出到:META-INF/com/google/android/updater-script (对于edify)