A/B升级和过去的recover升级的区别。

一、什么是A/B升级
1、A/B系统就是设备上有两套系统可以用,其中一套处于active状态,另一套处于备用状态,但是userdata只有一份,两套系统共用,我们在进行系统升级的时候,可以在active的系统中去对备用系统进行更新。当然,设备出厂时这两套系统肯定是一样的。
2、出厂时设备上有两套可以正常工作的系统,升级时确保设备上始终有一个可以工作的系统,减少设备变砖的可能性,方便维修和售后
3、如果OTA升级失败,设备可以回退到升级前的旧系统,并且可以尝试再次更新升级

二、传统recovery系统(android7之前使用)
在android7之前的版本中,android系统中,也存在两个系统,一个android主系统,一个recovery系统,在使用recovery模式进行升级的过程是,首先在android主系统中检查到了,有升级系统的提示,然后用户根据提示选择是否需要升级,如果升级则将升级的数据包下载并存放到cache分区,重启系统后就会进入recovery模式,并用cache分区下载好的数据更新android主系统,更新完成后重新启动进入android主系统。如果更新失败,那就鸡鸡了设备就成了砖了。唯一的办法就是重新升级,直到成功。

三、3、统OTA方式相比,A/B系统的变化主要有
1、系统的分区设置
传统方式只有一套分区
A/B系统有两套分区,称为slot A和slot B

2、跟bootloader沟通的方式
传统方式bootloader通过读取misc分区信息来决定是进入Android主系统还是Recovery系统
A/B系统的bootloader通过特定的分区信息来决定从slot A (A系统) 还是slot B启动

3、系统的编译过程
传统方式在编译时会生成boot.img和recovery.img分别用于Android主系统和Recovery系统的ramdisk
A/B系统只有boot.img(boot_a.img boot_b.img),而不再生成单独的recovery.img

4、A/B系统和传统OTA的分区区别
传统OTA方式下的分区主要包括:

在这里插入图片描述
5、A/B系统的状态
对于A/B系统的slot A和slot B分区,其都存在以下三个属性:
active: 系统的活动分区标识,这是一个排他属性,系统只能有一个分区设置为active属性,启动时bootloader选取设置为active的分区进行启动。

bootable: 分区可启动标识,设置为bootable的分区表明该分区包含了一个完整的可以启动的系统。在升级过程中的系统分区会设置为unbootable。

successful:分区成功运行标识,设置为successful的分区表明该分区在上一次启动或当前启动中可以正确运行,如果下载数据结束,重启时失败,则这个分区不会被设置为successful。

你可能感兴趣的:(A/B升级和过去的recover升级的区别。)