完整升级包目录结构分析
update/
├── AMSS.enc
├── APPSBOOT.enc
├── boot.img
├── build_version.enc
├── META-INF
│ ├── CERT.RSA
│ ├── CERT.SF
│ ├── com
│ │ ├── android
│ │ │ └── metadata
│ │ └── google
│ │ └── android
│ │ ├── update-binary
│ │ └── updater-script
│ └── MANIFEST.MF
├── OEMSBL.enc
├── QCSBL.enc
├── QCSBLHD.enc
├── recovery
│ ├── etc
│ │ └── install-recovery.sh
│ └── recovery-from-boot.p
└── system
升级包目录详解:
- boot.img是更新boot分区所需要的文件。包括kernel和ramdisk。
- system目录的内容在升级后会放在系统的system分区。主要用来更新系统的一些应用或者应用会用到的一些库等等。
- recovery目录中的recovery-from-boot.p是boot.img和recovery.img的补丁(patch),主要用来更新recovery分区,其中etc/目录下的install-recovery.sh是更新脚本。
- update-script是一个脚本文件,具体描述了更新过程。我们可以根据具体情况编写该脚本来适应我们的具体需求。该文件的命名由bootable/recovery/updater/updater.c中的宏SCRIPT_NAME的值决定。
- update-binary是一个二进制文件,相当于一个脚本解释器,能够识别update-script中的脚本。该文件的命名由bootable/recovery/install.c中的ASSUMED_UPDATE_BINARY_NAME决定。
- metadata文件是是描述设备信息及环境变量的元数据。主要包括一些编译选项,签名公钥,时间戳以及设备型号等。
- MANIFEST.MF文件定义了与包的组成结构相关的数据。类似Android应用的mainfest.xml文件。
- CERT.RSA:与签名文件相关联的签名程序块文件,它存储了用于签名JAR文件的公共签名。
- CERT.SF:这是JAR文件的签名文件,其中前缀CERT代表签名者。
增量升级包目录结构分析
update/
├── META-INF
│ ├── CERT.RSA
│ ├── CERT.SF
│ ├── com
│ │ ├── android
│ │ │ └── metadata
│ │ └── google
│ │ └── android
│ │ ├── update-binary
│ │ └── updater-script
│ └── MANIFEST.MF
├── recovery
│ ├── etc
│ │ └── install-recovery.sh
│ └── recovery-from-boot.p
└── patch
├── system
└── boot.img.p
升级包目录详解:
- Patch目录下的boot.img.p是旧版本boot.img的一个补丁。
- Patch目录下的system目录是新的system目录与旧的system目录有差别的文件,用于升级。
- 其他与完整升级包相同。