龙空技术网

Android搞机进阶知识——A/B分区

花月正春风的搞机日常 150

前言:

此刻小伙伴们对“安卓系统分区工具”可能比较讲究,小伙伴们都想要知道一些“安卓系统分区工具”的相关文章。那么小编也在网上网罗了一些关于“安卓系统分区工具””的相关文章,希望你们能喜欢,咱们快快来学习一下吧!

声明:由于作者水平有限,内容并不会很深,甚至可能有错误,但对刷机来说这些理论基础是够用的。

不知道大家有没有注意到,在较老的机型(多为2019年之前的机型)进行系统更新时,要经过漫长的重启,而较新的机型则不需要。

这个跟A/B 系统更新(也称为无缝更新)有关。上回说到,在非A/B分区的机型升级系统时,设备会先重新启动进入recovery模式,在recovery分区中存储的独立的Linux系统来完成系统更新()。而A/B系统更新是直接在系统内完成的,重启只是从旧的系统切换到了新系统。

那么,这种无缝更新是如何完成的呢?很简单,做两套系统分区,后缀分别是_a和_b。(如下图所示)

A/B分区

这样做的好处除了上面所说的可以“无感知”更新以外,如果系统更新发生错误,可以回退到之前的系统。

不过,目前的新机使用的多是虚拟A/B分区(Virtual A/B,简称VAB)。

在出厂搭载 Android 11 及更高版本的设备上,谷歌强制要求厂商使用虚拟 A/B 分区。

虚拟A/B分区就是将system、vendor、product(也支持system_ext和odm分区)融合成super分区,super分区会在内部处理 A/B 槽位,因此不需要单独的 super_asuper_b分区。这样的好处是可以大幅节省存储空间。

对刷机的影响:

1.部分机型没有独立的recovery分区,recovery需要刷到boot里面(不一定是直接刷,请参考第三方rec作者的说明)。

2.boot有A和B,可以在系统更新后重启之前进行操作来保留root。

3.bootloader模式无法理解动态分区,因此无法对其进行刷写(但可以直接刷写super分区)。如果需要单独刷写system、vendor、product、system_ext和odm等分区(包括colorOS的各种my_xxxxx分区),需要在fastbootd模式下进行。

最后,感谢你读到这里,搞机相关内容是我最初创作时的大方向,但无奈流量不高,所以鸽了好久,如果你对这方面话题感兴趣,请在相关文章的评论区留言。

#花月正春风的搞机合集##文章首发挑战赛##2023年度创作挑战##Android##数码爱好者#

标签: #安卓系统分区工具