android 6.0手动制作update升级包

由于特殊需求,需要针对user版本机器做OTA小包更新,单独更新某个库文件。

1. 按照普通流程生成一个OTA差分包,基于生成后的差分包我们做定制修改;

2. 主要修改update.zip 包目录/META-INF/com/google/android/updateer-script 文件,这个也是整个升级的脚本; 去掉所有的校验和不需要的语句,核心语句是package_extract_dir("system", "/system"); 将zip包的system文件夹覆盖到系统文件系统中;

3. 更新system文件夹下面文件,按照系统目录预制文件即可;

4. 对update.zip重新签名,参考网上 用java -jar sinak ......  语句无法正确签名,所以修改了 ota_from_target_files ,让正常OTA制作中对特定文件签名,跟踪代码找到 SignOutput(temp_zip_file.name, args[1]) 语句,修改成 SignOutput("/tmp/test", args[1]), 将我们修改后的update.zip 放到 /tmp/test ,然后再执行一次正常OTA差分包制作流程(其实就是对我们修改后的update签名)

5. 至此,生成的本地zip包就是我们定制的update了, 验证OTA更新一切正常。

 

 

这个流程主要是针对一些特殊需求场景适用,一般还是正常做OTA差分包更新就可以了。

posted @ 2020-05-15 15:54  Lazyzoon  阅读(1250)  评论(0编辑  收藏  举报