前言:我们做rom定制时为了方便用户升级,一般我们都会使用fota,fota厂商有多种,有google 的或者国内的比如艾拉比厂商。我项目是用的就是艾拉比。这次我写几项艾拉比做差分包时在android4.4和android12的制作区别:
Android4.4(10)制作fota差分包(升级)
步骤如下:
- source build/env.sh
- lunch
- 104(选择项目序列号也可以输入项目名称)
- kheader
- make(-j3)//全局编译项目
- make otapackage// 生产差分包工具
通过命令“make otapackage”编译 OTA 整包 此命令运行完后会产生版本 target 包和 OTA 整包。整包 目录:out/target/product/spXXXX/spXXXX-ota-*.zip。
//生产出的编译工具文件夹otatools 在目录out/target/product/spXXXX/下,防止重复删除重新编译可以将otatools文件夹移至其他非工程目录存储使用
为了以后在版本升级时可以使用差分升级,要保留此版本对应的 target 文件。路径为: out/target/product/spXXXX/obj/PACKAGING/target_files_intermediates/*-target_files-*.zip - ./build/tools/releasetools/ota_from_target_file -i source_target_files.zip(基版差分文件) target_target_files.zip(目标版差分文件) update.zip(差分文件)
- 将7)生产的update.zip差分文件挂到后台服务器上升级就可以了
Android12制作fota差分包(升级)
步骤如下:
- source build/env.sh
- lunch
- 104(选择项目序列号也可以输入项目名称)
- kheader
- make(-j3)//全局编译项目
- make otatools// 生产差分包工具
项目根目录下./out/target/product/spXXX/otatools/build/make/tools/releasetools/ota_from_pac_files -i source_target_files.zip(基版差分文件) target_target_files.zip(目标版差分文件) update.zip(差分文件)(ota工具路经不对)
----------------------------2024-08-09 update----------------------------
项目根目录下./out/host/linux-x86/bin/ota_from_target_files -v -i A-target.zip B-target.zip A-B_update.zip (注:A包升级B包)- 将7)生产的update.zip差分文件挂到后台服务器上升级就可以了
ps:降级差分包制作
./out/host/linux-x86/bin/ota_from_target_files --downgrade -i A-target.zip B-target.zip AB__downgrade_update.zip
总结:
两者的区别是编译otatool的工具的指令是不同的,存放otatools的目录也是不同的!
重复步骤6)可以重新产生target压缩包
备注:
查看当前版本号的方式:
1)根目录/out/target/product/xxxx(项目名称)/obj/PACKAGING/target_files_intermediates/xxxx-target_files-eng.perry.zip查看里面的system/build.prop文件中的ro.fota.version = 是该fota版本
2)根目录/out/target/product/sl8541e_1h10_32b/system/build.prop中的ro.fota.version = 是该fota版本
3) 默认出差分包,user版本和debug版本生成差分包时,无需指定签名