与传统OTA方式相比,A/B系统的变化主要有:
- 系统的分区设置
传统方式只有一套分区
A/B系统有两套分区,称为slot A和slot B - 跟bootloader沟通的方式
传统方式bootloader通过读取misc分区信息来决定是进入Android主系统还是Recovery系统
A/B系统的bootloader通过特定的分区信息来决定从slot A还是slot B启动 - 系统的编译过程
传统方式在编译时会生成boot.img和recovery.img分别用于Android主系统和Recovery系统的ramdisk
A/B系统只有boot.img,而不再生成单独的recovery.img - OTA更新包的生成方式
A/B系统生成OTA包的工具和命令跟传统方式一样,但是生成内容的格式不一样了
传统分区和A/B系统分区的比较:
A/B系统分区属性
对于A/B系统的slot A和slot B分区,其都存在以下三个属性:
属性 | 名称 | 功能 |
---|---|---|
active | 系统的活动分区标识 | 这是一个排他属性,系统只能有一个分区设置为active属性,启动时bootloader选取设置为active的分区进行启动 |
bootable | 分区可启动标识 |