Project Treble与GSI、sGSI

对于玩机爱好者来说,在阅读各类刷机教程时,一定会频繁的见到“pt”、“通刷包”、“GSI”等字样,很多萌新看的一头雾水,现在,跟随笔者一起来了解下它们是什么含义吧!

安卓升级太难,谷歌推出Project Treble减少系统升级工作量

太长不看版:谷歌为了减小系统升级的工作量,将与硬件有关的代码独立出来,以后更新系统时。无需更新内核与驱动,只更新系统层就可以,新系统直接使用旧版驱动即可。
正式解释:pt是Project Treble的缩写,是自安卓8.0开始引入的一项新的系统升级机制。在解释pt之前,我们先来看看从谷歌发布新版本安卓到我们用户收到系统更新,中间需要经历哪些过程吧:
  1. 谷歌公布新系统源码(AOSP);
  2. 上游SOC厂商适配:高通、海思、联发科等上游厂商对AOSP源码进行修改,以使其能够在自家平台上运行;
  3. OEM厂商适配:华为、小米、OPPO、vivo等公司,在上游厂商适配的基础上,添加自家的特色功能和UI;
  4. 测试:OEM厂商对系统进行内部测试,以确保新系统能够稳定运行、各项功能正常,对于运营商定制版本,还要与运营商合作测试;
  5. 新系统推送:即使这一步,也需要经历内测——公测——灰度推送——正式推送等步骤。

      升级流程的主要问题在于后面几步:有的SOC厂商在源码适配上并不积极(点名早期联发科),部分 OEM 厂商的软件开发团队定制新系统的进程偏慢(对AOSP修改程度越大,工作量越大,进度也就越慢),运营商有时也需要打量了人力和物力来测试新版系统的通讯稳定性……因此谷歌虽然每年一个新版本,用户却很难及时收到更新。

      为了解决安卓系统升级老大难的问题,谷歌自安卓8.0开始引入一项新特性:Project Treble。在引入pt前,如上文提到的,新系统的升级必须要完成大量对底层部分的更新重构(由上游SOC厂商完成)和对Android 系统框架的升级(Android OS framework,由OEM厂商完成),工作量大且难以协调。有了 Project Treble 以后,当新系统发布时,底层部分的工作量就被节省了出来,OEM厂商在 AOSP 源码发布后只需根据自身需求对 Android 系统框架(Android OS framework)进行升级即可。由芯片制造商编写的设备专属的底层驱动部分则由 Google 和芯片厂商一起承担,并被设计为不再面向特定版本的 Android 系统。
      对于第三方ROM开发者来说,通过 AOSP 代码编译的 ROM几乎可以在任何支持 Project Treble 的新手机上运行,无论它是哪家的设备。基于这个 AOSP 操作系统,第三方ROM(比如 Lineage OS)的适配工作将变得异常简单。
      支持pt需要有一个额外的vendor分区,很多老设备没有预留这个分区,无法通过后续系统升级获得对pt的支持,因而想体验畅快的刷机,还是换新设备吧,毕竟只有充钱才能变强。当然,对于一些有预留的未启用分区的设备来说,可以实现“土制pt”,例如小米手机普遍存在一个没什么卵用的广告分区,很多开发者将其作为vendor分区使用,实现了旧设备对Project Treble的支持,类似情况的还有酷派S1、乐视pro3等。

GSI与sGSI

      那么,GSI又是什么东西呢?前面提到过,谷歌为了减小系统升级的工作量,将与硬件有关的代码独立出来,以后更新系统时。无需更新内核与驱动,只更新系统层就可以,新系统直接使用旧版驱动即可。这种情况下,我们只需刷入一个system镜像即可,这个镜像就是GSI(Generic System Image,通用系统镜像)。支持pt的手机,只要刷一个gsi镜像即可完成系统升级,这个镜像是通用的,不区分手机型号和内核版本。当然,还是要区分一下是A-only还是A/B分区(关于A-only和A/B:点此了解)。
      而sGSI指的是“semi-GSI”,也就是“半GSI”,所谓半GSI,就是说,它也是类似GSI一样,是个通用的系统镜像,可以用在支持pt的手机上,但与GSI刷入之后直接可以使用不同,在刷入sGSI后,往往还需要再刷入特定的补丁,它算不上彻底的通用,因而得名sGSI。很多开发者移植的GSI版MIUI、Flyme等,都属于sGSI。

声明: 本文由(九面相柳)原创编译,转载请保留链接: Project Treble与GSI、sGSI

Project Treble与GSI、sGSI:等您坐沙发呢!

发表评论