Android OTA编译与升级流程详解

需积分: 50 14 下载量 162 浏览量 更新于2024-08-06 收藏 172KB DOC 举报
本篇文档详细探讨了Android系统的Over-The-Air (OTA)更新机制,特别是针对Android 11代码版本的编译与包制作过程。首先,作者介绍了通过执行一系列构建脚本(如`./build.sh`)来创建不同的OTA包,如全量升级包(out/dist/merged-qssi_lito-ota.zip)和差分升级包(out/dist/merged-qssi_lito-target_files.zip),其中差分包的制作涉及到`./build/tools/releasetools/ota_from_target_files`工具。 在包的结构方面,提到AB模式与非AB模式之间的区别。AB模式的OTA差分升级包包含一个META-INF文件夹,用于存放元数据和签名信息,以及一个PATCH文件夹,存放具体的文件差异。非AB模式则可能更为直接,PATCH文件夹包含了完整的更改内容。值得注意的是,使用makeotapackage或构建脚本`./build.sh dist`生成的IMG文件对于差分升级的成功至关重要。 对于OTA升级的过程,传统的方法是通过RecoverySystem类的`installPackage`方法,位于`Frameworks/base/core/java/android/os/RecoverySystem.java`,该方法在APK或SD卡升级之前会被调用。然而,Android 11引入了A/B模式,这意味着旧有的升级流程不再适用,而是采用新的系统架构来处理更新。 A/B模式的出现,使得设备可以同时存储两个独立的系统分区,允许用户在不重启的情况下选择更新哪一个版本,提高了系统的稳定性。这种模式下,升级过程涉及到分区的切换和新版本的激活,而不是简单地安装新APK。 本文档深入剖析了Android OTA升级的底层代码实现,包括包的制作、结构设计,以及在不同模式下的升级流程,这对于开发者理解和实施Android系统的更新策略具有重要的参考价值。