任何新的Android设备都不需要支持无缝更新


当Android的牛轧糖释放出来 , 把我们谈论各种各样的新功能 。我们为初学者提供了新近更新的用户界面 , 以及期待已久的多窗口功能和Vulkan Graphics API支持 。但是 , 在大多数用户的脑海中浮现了一个幕后推手 。Android Nougat在支持A / B分区的设备上引入了“无缝更新” 。现有的大多数Android设备(不包括新的Google Pixel和Google Pixel XL))当时没有A / B分区 , 因此无法利用无缝更新 。此功能的基本前提是设备具有第二组系统 , 启动 , 供应商和其他重要分区 , 并且当您获得OTA更新时 , 更新会在后台进行 , 而第二组分区已打补丁 , 这使得您可以无缝地重新启动进入更新的软件版本 。如果更新失败 , 您将被踢回可正常使用的版本 , 这意味着公司将减少处理工作的麻烦 , 并且可以更好地保护消费者 。
与Project Treble不同 , 任何新的Android设备都不需要支持无缝更新 。因此 , 绝大多数新的Android设备均不支持该功能 。到目前为止 , 我们一直在列出所有受支持的设备 , 并且很明显 , 该功能并未得到广泛支持 。真可惜 , 因为A / B分区给普通用户和高级用户都带来了很多好处 。但是 , 该功能在发烧友社区中口碑不好 , 因为它使Android开发和更新自定义修改变得更加困难 。实际情况并非如此 , 因此我们想揭开无缝更新的神秘面纱 , 并解释A / B分区如何影响XDA上的自定义开发 。
Android设备上的分区
分区只是电话内部存储器上用于存储数据的离散部分 。每个分区上保留哪种数据取决于硬件 , 操作系统和许多其他因素 。引导程序将只有一个 , 系统(Android OS)将只有一个 , 用户数据将只有一个……依此类推 。当您看到人们谈论“ / system”和“ / cache”时 , 他们指的是这些分区的给定名称 。的万普拉斯6 , 例如 , 有 72个的分区 。听起来很多 , 但OnePlus 6是支持无缝更新的设备之一 , 这意味着这些分区中的许多分区都是彼此的简单复制 。
设备上有很多分区 , 您作为用户不必担心 。在刷新自定义ROM , 内核 , 恢复或Magisk或Xposed之类的修改时 , 绝不会修改这些分区中的许多分区 。除非您知道自己在做什么 , 否则这些分区中的许多分区要么会出于我们的目的而未使用 , 要么太危险而无法触摸(想到华为/ Honor设备上的XLOADER和OEMINFO 。)对于绝大多数Android用户而言 , 分区我们主要处理的是系统 , 启动 , 恢复 , 用户数据以及最近的供应商和vbmeta 。这是每个分区用途的简要说明:
系统–存放Android操作系统 , 系统库 , 系统应用程序以及其他系统媒体 , 例如引导动画 , 股票壁纸 , 铃声等 。
引导–包含内核 , 虚拟磁盘以及A / B设备上的恢复
恢复–保留恢复 , 其中TWRP最常在仅A的设备上刷新(A / B设备没有专用的恢复分区)
userdata –保存您所有的应用程序 , 系统和内部存储数据
供应商–拥有平台和设备专用的HAL , 即Android OS与基础硬件进行通信所需的文件
vbmeta – Android验证启动2.0的分区 , 用于验证启动过程的完整性
设备OEM可以更改其分区方案以使用所需的任何布局 。例如 , 华为将引导分区分为ramdisk_recovery和内核 。还有很多额外的分区可能包含其他系统应用程序 , 例如客户 , 产品和OEM , 尽管可以安全地进行修改 , 但是如果您想使自己更容易恢复库存 , 通常不建议这样做 。那么A / B分区在哪里起作用?
A / B分区方案
如何通过无缝更新在设备上进行更新
我在下面制作的非常简单的图像说明了如何在具有A / B分区支持的设备上处理更新 。所示的分区是系统分区 , 尽管其他分区(例如引导区和供应商区)也可以使用OEM提供的任何给定的OTA更新进行更新 。此更新过程不仅会发生主要的Android版本更新 , 还会发生安全补丁更新 。
【任何新的Android设备都不需要支持无缝更新】

    推荐阅读