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