既然是一种全新的更新方式,自然是跟以前传统系统更新方式有所区别。传统的系统更新方式需要将手机置入Recovery模式安装更新,安装更新往往要花上几分钟到十几分钟不等,这个过程中你什么事情都做不了。原厂Recovery会将更新的临时文件存放进/cache分区里,这也就是/cache分区的主要目的。
按照谷歌的说法,A/B系统更新(也称为无缝更新)的目标是确保在无线下载 (OTA) 更新期间在磁盘上保留一个可正常启动和使用的系统。采用这种方式可以降低更新之后设备无法启动的可能性,这意味着用户需要将设备送到维修和保修中心进行更换和刷机的情况将会减少,其他某些商业级操作系统(例如ChromeOS)也成功使用了A/B更新机制。
A/B无缝更新基本的工作原理:
假设你现在运行的是位于A部分的底层和上层系统。
如果你的OTA更新包是增量更新包,更新包会自动将这些A部分的底层和上层分区校验完整性,然后按照更新包里的内容更新之后写到B部分的对应分区里。更新完成之后,手机会问你是否重启,此时重启之后,底层会自动将下一个要启动的系统切换到B部分,重启之后就是已经更新之后的系统。
那么到了B部分之后,下一个更新来了怎么办呢?
同样的,也是将B部分的底层和上层分区校验完整性,然后按照更新包里的内容更新之后写到A部分的对应分区里,然后让你重启,并切换到A状态。
当前已经有越来越多的厂商在他们新推出的手机使用这种更新方式了,可以明显看出这是将来Android阵营的一大趋势。