刷机术语:A-only、A/B、SAR解析

大家在下载刷机包时(尤其是类原生的GSI镜像),经常会看到不同的类型:A-only,A/B。还有大神常说某某手机为SAR架构,不能刷某某包。它们到底是什么意思呢?

A-only与A/B对比

我们传统的手机,就是A-only,手机中仅有一套系统,系统更新时必须重启到recovery模式下,由recovery完成更新。A/B update又叫无缝升级,是从Android从7.0开始引入的一种新的升级方式。可以简单理解为,手机中有两套系统(假设为A和B),你正在使用A,B在更新,你仍然可以使用,等B升级好了,再切换为B。之所以叫两套而不是双系统,是因为它们有两个内核、两个系统但共用相同的用户数据和App。
A/B系统的优点在于:
  1. 更新系统的时候不会影响用户的操作,不需要长时间的等待(因为有两套系统)
  2. 更新系统的时候不会刷成砖头(失败了可以回到原来的系统,系统中总是有一套可用的系统)

凡事有利必有弊,A/B系统的缺点有:

  1. 因为有两套系统,所以占用更多的内存
  2. bootloader变复杂(在启动的时候要做A or B的判断等操作,当然,这是开发者要考虑的事,与用户无关)

体现在刷机包中,最明显的区别就是A/B系统的ROM是没有recovery.img的,自然这样的手机也没有独立的recovery分区。因此,两种ROM是不可以通刷的,必须按自己的手机类型进行选择。

传统A-only和A/B分区对比

SAR (system-as-root)简介

      system-as-root,玩机爱好者们喜欢简称为SAR,是安卓9.0开始引入的一项新特性,所有搭载 Android 9 的新设备都必须使用 system-as-root,它可以将ramdisk.img合并到system.img,而后者会反过来再作为 rootfs 进行装载。对于要升级到 Android 9的设备,使用system-as-root并非强制要求,但民间开发者也可通过一定的技术手段实现“土制SAR”。
      简单来说,在非SAR设备的刷机包,boot.img中包括kernel(内核)和ramdisk(ramdisk中包括init及一些初始化脚本和命令),而SAR的刷机包中,root.img仅包含kernel,ramdisk中的内容都被放到了/system下,这给大家带来的最大困扰就是,由于很多非SAR设备(多为旧设备)的init不支持从/system中加载初始化脚本,因而难以为其移植支持SAR的ROM(大势所趋,以后的MIUI、Flyme必然是SAR架构的),因此,会给大家带来一定的阵痛期。
      长远来看,自从project treble开始,谷歌就在一步步将内核、驱动和系统解耦,以期尽可能减少更新系统的工作量,解决安卓碎片化问题。对于手持旧设备的用户来说,只要选择刷机包是按照自己设备的实际情况去选择就好了,不要见到GSI,不管三七二十一就去刷,刷错版本很可能导致设备无法启动,甚至更严重的后果。总之一句话,搞机有风险,刷机需谨慎!
      这里分享给大家一个小工具,可以检测您的设备是否支持A/B分区以及SAR架构:TrebleCheck(点此跳转

声明: 本文由(九面相柳)原创编译,转载请保留链接: 刷机术语:A-only、A/B、SAR解析

刷机术语:A-only、A/B、SAR解析:等您坐沙发呢!

发表评论