差分包制作过程:资源包 整包 差分包
资源包:\out\target\product\XXX\obj\PACKAGING\target_files_intermediates\XXX-target_files-???.zip
整包: \out\target\product\XXX\XXX-ota-???.zip
差分包:使用两个资源包制作,一般在android编译环境下执行
./build/tools/releasetools/ota_from_target_files -i old.zip new.zip diff.zip
其中old.zip和new.zip都是资源包,diff.zip就是差分包
以前使用的第三方的fota,只要编译资源包给第三方即可。这次自己制作差分包,升级失败,过程如下
1. 编译两个版本,执行makeotapackage,获得资源包 整包,在使用ota_from_target_files 制作差分包
2. 使用工具烧录编译的system.img boot.img等
3. 进入recovery升级差分包失败
4. 做实验,先进入recovery刷整包,再刷差分包成功
说明问题出现在工具烧录的版本和整包的内容不一致。
百度查到以下链接:
https://blog.csdn.net/qq_25804863/article/details/80538248
解决办法:
make otapackage后将资源包\out\target\product\XXX\obj\PACKAGING\target_files_intermediates\XXX-target_files-???.zip 中的 IMAGES/system.img解压出来替换 \out\target\product\XXX 下的system.img
可修改build目录下Makefile中的$(INTERNAL_OTA_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE),在该定义下执行sh脚本解压拷贝
网友评论