几个概念
**整包升级:**即整个Rom的数据都升级,所以升级包较大,但对要升级的目标系统的版本没有限制
**增量升级:**即只升级有变化的部分,所以升级包较小,但只能针对做比对的俩个系统版本之间来升级。
【完整升级包】:全量包,可直接用于整包升级使用。make otapackage命令后,会生成到out/target/product/{product_name}/{product_name}-ota-eng.{name}.zip
【原始升级包】:过程包,该包会包含更详细的信息。make otapackage命令后,会生成到out/target/product/{product_name}/obj/PACKAGING/target_files_intermediates/{product_name}-target_files-eng.{name}.zip
【增量升级包】:差分包,以俩个【原始升级包】为比较基准,生成的升级包。
制作升级包
-
制作完整包
source build/envsetup.sh lunch xxx make -j16 #编译完后,会在out目录下生成刷机文件(假设叫 a系统) make otapackage #生成系统升级包(假设【原始升级包】叫a_src,【完整升级包】叫a_upt)make otapackage成功后,就会生成【原始升级包】a_src和【完整升级包】a_upt。其中【完整升级包】a_upt即可作为全量升级使用。这样,一个【完整升级包】
a_upt.zip,就制作完成了,该包可用于任何系统来升级使用。PS:之前,看网上有通过命令来生成【完整升级包】的,我试了下发现两者其实是一样的:
# new_upt.zip 与 a_upt.zip 是一样的 ./build/tools/releasetools/ota_from_target_files a_src.zip new_upt.zip
-
制作差分包
首先,简单修改下代码,如添加一个Toast弹出。
然后,再次编译:
make -j16 #编译完后,会在out目录下生成刷机文件(假设叫 b系统) make otapackage #生成系统升级包(假设【原始升级包】叫b_src,【完整升级包】叫b_upt)如果,想要做
a系统和b系统的增量升级的话,则可以通过a_src和b_src作为比对基准,来生成两个系统间的差分包:#参数 -i 是用来生成差分包的 ./build/tools/releasetools/ota_from_target_files -i a_src.zip b_src.zip diff.zip这样,一个【增量升级包】
diff.zip就制作成功了。该包只能用于a系统升级到b系统使用。
这个问题有这么几个原因:一、SELinux权限的问题。二、升级包
Android OTA升级包制作与验证指南

本文介绍了Android OTA升级包的制作过程,包括整包升级和增量升级的概念。完整升级包适用于任何系统升级,而增量升级包仅限于特定版本间的升级。制作过程中涉及到的命令和文件操作进行了说明,并提到了升级验证步骤,如将升级包push到指定目录,以及在遇到问题时如何通过日志进行排查。最后,文章提供了相关参考资料。
最低0.47元/天 解锁文章
781





