多语言展示
当前在线:1024今日阅读:195今日分享:41

Android源码下制作OTA包及验证

当我们拿到一份Android源码后,要如何制作OTA升级包(实质上是Recovery升级的ZIP包,OTA升级是基于Recovery的机制再加上下载ZIP包和ZIP包版本管理等功能实现)呢?
方法/步骤
1

进入Android源码目录下执行如下命令来初始化环境变量:source build/envsetup.shlunch其中,lunch命令运行后会要求选择所要编译的产品名。

2

编译生成OTA包(前提是Android需先完整编译过一次,即make过一次)       make otapackage执行上述命令后,会生成out/target/product/XXX/YYY-ota-eng.guochongxin.zip和out/target/product/XXX/obj/PACKAGING/target_files_intermediates/YYY-target_files-eng.guochongxin.zip两个后期需要使用到的包,其中前一个为完整升级包,后一个为后期制作增量升级包时的对比包,那么如何制作增量升级包呢?假如系统里的软件是A版本,然后我们刚使用make otapackage命令制作了B版本,此时我们可以在之前保留的A版本的临时目标文件基础上制作增量包,过程如下:       ./build/tools/releasetools/ota_from_target_files -v -i A-target_files-eng.guochongxin.zip out/target/product/XXX/obj/PACKAGING/target_files_intermediates/YYY-target_files-eng.guochongxin.zip YYY-eng.guochongxin_incremental.zip       执行上述命令后,会在当前目录下生成YYY-eng.guochongxin_incremental.zip增量包,其中A-target_files-eng.guochongxin.zip为A版本的临时目标文件,而YYY-target_files-eng.guochongxin.zip为刚编译好的B版本的临时目标文件。

3

验证Recovery升级:将上述ZIP包复制到内部存储的任一可写目录下,假设我们的ZIP包复制到/cache目录下,文件名为ota.zip,那么接下来我们只需要再执行echo '--update_package=/cache/ota.zip' > /cache/recovery/command命令,然后再执行reboot recovery命令即可重启进入Recovery模式进行升级验证。

推荐信息