linux系统|谈谈刚刚发布的Android 11不为人知的剧变

本文转自【太平洋电脑网】;
Google近日正式发布了安卓11 。对于这个最新一代安卓系统 , 所带来的新功能新特性 , 自然颇具价值 。不过考虑到国内往往会对原生安卓的功能进行种种魔改 , 其实对于国内用户来说 , 影响有限 。安卓11对国内生态影响最大的 , 可能还是一些底层变化 , 这也较少为人提及 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

Android 11 来了
没错 , 安卓11的底层又有了不少大变化!所带来的剧变 , 会深刻影响广大用户 , 今天就一起来聊聊吧 。
刷机不再变砖?Recovery分区成为历史!
如果你是一名安卓刷机玩家 , 一定知道Recovery这个名词 。这是安卓系统中 , 用于恢复系统的模式 , 无论是厂商官方升级系统 , 还是玩家刷入第三方ROM , 通常需要通过Recovery来进行 。在安卓机中 , 还专门划分了一个分区来放置Recovery , 但这在安卓11中要成为历史了 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

刷机玩家再熟悉不过的Recovery
传统的Recovery升级模式 , 如果写入System系统分区的数据有误 , 那么机器可能就无法启动 , 刷机玩家应该很熟悉这一类“变砖”的情况 , 甚至厂商OTA偶尔也会“变砖” 。要如何避免?事实上 , 近年的新安卓机使用A/B分区机制 , 很多安卓机已经不需要Recovery来引导升级 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

Android系统启动方式的变更 , 之前需要经由Recovery , 使用A/B分区机制后直接通过boot来引导启动
【linux系统|谈谈刚刚发布的Android 11不为人知的剧变】在采用了A/B分区机制的安卓机中 , 当系统需要升级的时候 , 会将新的系统写入其中一个分区 , 写入成功后则从该分区启动;如果写入失败 , 或者启动失败 , 则从原分区启动 , 这相当于两个系统分区相互备份 , 大大减少了系统升级的故障率 。
安卓11的机制也与此相似 。出厂预装安卓11的机器 , 取消了Recovery分区 , 而且对A/B分区机制进行了一定程度的改变 。安卓11需要升级系统的时候 , 会将新系统的数据和现在的系统数据进行对比校验 , 将差异部分写入另一个分区而不是系统分区;之后 , 利用新数据启动系统 , 如果系统顺利启动 , 那么就将差异数据写入到系统分区 , 启动失败则抛弃差异数据 , 用原来系统分区的数据启动 。
安卓11这个新机制既有A/B分区的可靠性优点 , 也无需像A/B分区那样占据大量的额外空间 。无论如何 , Recovery分区都已经遭到了遗弃 , 预装安卓11的机器 , 出厂就没有Recovery分区 , boot分区更多承担起了以前Recovery分区的工作 。Recovery是刷机不可或缺的工具 , 刷机玩家何去何从?恐怕得另觅出路了 。
安卓11是有史以来最容易升级的安卓?
我们知道 , Google一直为解决系统碎片化问题做努力 , 力求设备能够升级最新版本的安卓 。为此 , Google作了很多努力 , 例如在安卓8.0中推行了Project Treble机制 , 将系统(Android OS framework)单独分区 , 和硬件驱动(Vendor implementation)分离 , 此后厂商可以为设备单独推送新版安卓 , 而不需要重新适配驱动 。
linux系统|谈谈刚刚发布的Android 11不为人知的剧变
文章图片

文章图片

Project Treble将Google的安卓系统框架和硬件供应商提供的驱动作了分离


推荐阅读