Android下制作OTA包及验证

  当我们拿到一份Android源码后,要如何制作OTA升级包(实质上是Recovery升级的ZIP包,OTA升级是基于Recovery的机制再加上下载ZIP包和ZIP包版本管理等功能实现)呢?(注:下面命令如无特别说明,则均在Android源码目录下执行)
  1.进入Android源码目录下执行如下命令来初始化环境变量:
   source build/envsetup.sh
   lunch
   其中,lunch命令运行后会要求选择所要编译的产品名。
  2.编译生成OTA包(前提是Android需先完整编译过一次)
   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版本的临时目标文件基础上制作增量包,过程如下(在Android源码根目录下执行):
   ./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模式进行升级验证。

评论

此博客中的热门博文

I/O映射之I/O端口

通过Netlink检测网线插拔

使用seq_file