如何评价 Project Treble?

如何评价 Project Treble?

虽然没有人邀请,但是并不妨碍在下前来强答一波

自从谷歌正式发布Android 8.0系统到现在,已经过去了几个月的时间。最近,一些业内一线大厂都开始了自家的Android 8.0系统测试,诸如HTC U11、小米MIX2、一加5、LG V30都迎来了各自的Android 8.0Beta版测试固件。而三星Galaxy S8的首轮测试甚至已经接近尾声,有消息称其准备在更多国家和地区开启更大面积的测试版系统升级,其中就包括中国、德国、法国以及东南亚等地。当然,动作更快的索尼甚至已经完成了测试,开始向旗下多款机型推送正式版升级了~

然而,在这些大厂推送的Android 8.0中,有那么一家厂商的系统在海外开发者圈子里引发了热烈的欢呼以及讨论,它并不是“速度最快”的索尼,而是中国厂商华为。它们家的海外版Mate9最新测试系统同样基于Android 8.0开发而来,但和其他几家的测试版或正式版固件不同的是,华为海外版Mate9所推送的Android 8.0固件加入了一个非常重要的新特性:Project Treble(或者简称PT)。

首先,你需要知道 为什么系统更新会成为Android大问题?

在解释Project Treble的作用之前,笔者想请大家思考一个问题:为什么每次谷歌发布新版Android系统之后,各大一线厂商都需要好几个月的时间才能做出自己的系统更新,而二线厂商有时候甚至需要一年左右的时间?

有的朋友可能会想到深度定制系统所需的“改造”耗时很长,还有的朋友可能抛出厂商故意不给老设备更新系统,以此促进新产品销售的“阴谋论”……咳咳,我什么都不知道。

但是,其实以上的说法都没有真正触及问题核心:导致安卓系统适配缓慢,同时也是导致许多老设备无法更新到最新系统的最大原因既不是性能不足,也不是厂商缺乏技术,而是源自于Android的一个“天生”缺陷。

任何一位PC玩家都知道,传统电脑的驱动程序是可以自行安装、升级的,而且某一个驱动往往可以兼容不只一代操作系统。典型地来说,就是不少十年前的电脑,即使早就不能“官方兼容”最新的Win10系统,但用户自行安装了Vista或者Win7时代的驱动之后,依然可以正常使用——虽然有些最新的技术特性无法支持,但绝不会因此导致蓝屏或无法开机之类的BUG。

但是,在Android操作系统,却不是这样的。在Android系统上,驱动、重要的运行库等都必须和系统版本严格对应:同样的硬件,适配Android 2.2的驱动就只能工作在Android 2.2版本的系统里,如果不作任何改动直接用在Android 2.3上,很大的可能就是根本无法开机……这种驱动程序和系统“严格一对一”的做法从最早的初代测试版Android就确立下来,一直延续到了现在。

而且,和传统PC不同,Android设备的CPU、“显卡(GPU)”、WiFi模块的驱动往往并不会面向公众提供,而是由芯片厂商直接以代码的形式交付给手机厂商,然后再由手机厂商直接把驱动整合到做好的系统更新里去。

这样一来,每次谷歌发布新的Android版本,首先芯片厂商必须要先研究系统代码,写出每种不同型号的硬件适配新系统的驱动,然后把它们交给手机厂商,手机厂商又要进行整合、测试、优化……不耗上几个月根本搞不定好么!

最糟糕的是,如果芯片厂商没有给某一款硬件推出新版本的驱动,手机厂商手头的老版本驱动是无法在新版Android上工作的。而改写驱动理论上不是不可以,但是那个工程量实在是太大太大,搞不好还会弄出各种Bug甚至侵权问题。事实上,这就是绝大多数老手机都难以获得最新Android系统更新的原因所在。

Android历史上最大的变革:Project Treble

很显然,这种驱动程序和系统版本一一对应的做法,最初是为了保证用户体验:因为它可以确保安装了新版Android的设备,其硬件必然是完全满足新系统性能和功能所需的。但是,这种“强行淘汰”老设备的做法不仅造成了用户的不满,而且每年都必须更新一次的驱动也让芯片厂商和手机厂商疲于奔命——过于缓慢的新系统更新进度还进一步加大了Android系统的“碎片化”,让软件开发者也头疼不已。

最终,就连谷歌自己也对此忍无可忍:为了更好地解决系统碎片化问题,也为了给厂商、开发者、用户“省心”,谷歌在宣布Android8.0系统的同时,带来了Android历史上最大的变革:Project Treble。

Project Treble说来其实很简单,它无非就是解除了驱动和系统版本的“挂钩”机制,允许芯片厂商推出长期兼容未来新版本的驱动,并且保证它能够在以后的新版Android中无需修改也能正常使用。

但是,这一改动带来的变化之大却是有目共睹的:首先,对于硬件厂商来说,老型号的主控、WiFi模块等等只要具备一版符合Project Treble的“通用驱动”,就能兼容以后好多个版本的Android。不仅省去了适配新驱动的时间,也让老设备的“寿命”得以延长。

而对于手机厂商来说,只要某款手机符合Project Treble标准,将来谷歌推出新版Android的时候,无需再等待芯片厂商适配,直接把以前的驱动代码移植到新系统上就能保证正常使用,理论上可以将适配新版本Android的时间从几个月缩短到只需要一周甚至更短的时间。显然,这样会让用户的感受更好,同时也更有利于安全漏洞的及时修补。

当然,对于用户来说,如果你买了一款符合Project Treble的手机,那么将来谷歌推出Android 8.1、Android 9.0……的时候,其他手机可能需要几个月才能收到更新推送,但你的手机就只需要几周就能“吃”上新系统了,这感觉确实很棒。

更棒的是,由于在Project Treble框架下,驱动和操作系统之间的兼容性变得长期有效,所以哪怕厂商出于商业利益的目的,不再为用户手头的老型号提供官方更新,民间开发者们也能非常简单地将老版本系统中的驱动移植到最新的Android代码中去,以比过去更快、更稳定的节奏推出移植版系统供“机友”们刷入。从而一举给老机型们“续命”,让老手机们一次次地焕发新生!

以本次华为适配Project Treble的海外版Mate9固件为例,由于支持Project Treble,意味着固件里的那些重要的驱动、运行库等等可以被直接提取出来,用在更新的系统上——事实上,海外已经有开发者进行了尝试,将Mate9官方EMUI8(基于Android 8.0)的驱动提取出来,然后集成到开源的Android 8.1系统中再重新刷入,只需要一天的时间就能完成移植工作,而且做出来的新版系统完全可以正常使用。这就意味着,不管是将来华为给不给Mate9更新系统,至少海外版的Mate9用户们都能很快用上Android 8.1、9.0、10.0……甚至更后面的最新移植系统。

Project Treble虽好,但它未必能够立刻普及

需要注意的是,虽然本次华为在海外版Mate9的最新测试版固件中加入了Project Treble特性,证明了即使不是最新型号的手机,也可以通过赋予新驱动和新系统来让它支持Project Treble这一革命性的新特性。但是这并不意味着它就能很快普及开来。

首先,要支持Project Treble,需要驱动和系统两方面的兼容:谷歌已经保证未来的新版Android源代码都会兼容符合Project Treble的驱动,但是对于芯片厂商们来说,它们仍然需要为Project Treble推出兼容版的驱动才行。比如说,如果一个旧型号的主控早已不在官方的支持计划中,那么它显然不会得到新驱动的支持,而这就意味着它同样无法兼容未来的新版Android系统。

更进一步地说,Project Treble并非强制,而且兼容Android 8.0也不等于兼容Project Treble。因此不排除会有芯片厂商依然坚持老式的驱动适配方式,拒绝推出长期有效的Project Treble驱动。

要问为什么的话:老设备都能轻轻松松更新最新系统了,谁还会买新款呢?(笑)

Google可能打算搞好系统升级功能,然后升着升着就脱离了 Android-Linux ,变成了 Android-Fuchsia, 不然以后Fuchsia推广艰难,Android尾大不丢,还可能变成社区支持的系统,脱离Google的掌控。

不错不错,貌似mate9荣耀v9都支持,新闻上说论坛里弄新rom非常之快,我这个华为黑要给点赞

华为Mate 9/荣耀V9支持Android 8.0 Treble架构:消灭碎片化

@系统维护了我

project treble就是在linux内核和android framework之间,加入一个抽象层,以使得android framework可以相对独立于linux内核。

除了现实意义外,这个玩意可以看成是部署fuchsia的前奏,相关接口稳定以后肯定会添加到fuchsia中,然后慢慢向android-fuchsia过渡。

Google当年做的恶(分裂Linux

https://www. ruanyifeng.com/blog/201 0/02/open_android_or_not.html https://www. ruanyifeng.com/blog/201 0/02/revisiting_android_licenses.html

),最後变成了自己的坑。

app不给权限就不让用,说白了也是Google的放纵。

APP 禁止全部权限仍可获取用户信息,问题怎么解决?用户隐私该如何得到保护?

还没有人提到Project Treble在提升系统安全方面的作用。

Treble还对硬件抽象层(Hardware abstraction layers, HALs)做了隔离。下面这张图来自 Android Security 2017 Year in Review :

8.0之前,多个HAL运行在同一个进程里,导致这个进程的权限变得非常高,是所有HAL需要的权限的集合。任何一个HAL漏洞都可能会使攻击者控制整个进程,从而获得权限去访问所有HAL的内核驱动。

Project Treble对HAL进行了隔离,每个HAL运行在自己的进程里,而且赋予每个HAL进程最小的权限。很显然,某个HAL的漏洞不会影响到其他的HAL进程,攻击者能够获得权限也被降低,只能访问存在漏洞的HAL对应的内核驱动。

个人理解project treble是神器,它让硬件和上层安卓彻底分开,相当于支持project treble的底层驱动固化在手机里,在更新系统时驱动部分不必更新。

带来的好处:

1.手机厂商系统升级不必为每一台手机做单独适配,不管手机新旧都能同一时间用上新系统,也就不存在放弃老用户问题。

2.如果等不急手机厂商的适配,可以直接安装谷歌的最新rom,体验最新系统。

3.rom的移植变得简单,第三方rom随便刷,不存在适配问题,想象一下,可能一加手机可以和小米手机一样第一时间体验到miui的更新。

当然,以上2,3条能否实现得看厂商的封闭策略,就算只能实现第一条对用户来说也是好事,对厂商更不用说了,省去了底层适配的烦恼,这也是为什么现在厂商都在积极适配project treble的原因。

最大的优点就是第三方大佬们的适配方便了,搞机的朋友们爽了。从O开始,类原生ROM越来越多,“定制”选手们能插手的地方也少了

2018.8.25重答

目前看来用处还是很大的,毕竟PT出来之后,升级新版本安卓不需要再适配驱动了。如果不需要大改UI的话,那升级应该确实会快很多。现在安卓P出来之后,很多OEM厂商都已经开始做测试了,小米甚至已经直接开始推送了。算是推翻了自己以前的答案吧~

******原答案******

目测用处不大,该碎片化的还是碎片化,不更新的还是不更新。

道理很简单。这个项目只是说OEM厂商(华为、小米、OV等)适配安卓8.0更容易,厂商懒得动那再怎么整都没用,除非谷歌禁用自定义UI,强推原生安卓。

要知道安卓碎片化、版本落后的主要原因不是各大厂商无法适配,而是拒绝适配,或者根本懒得适配。给老手机上新系统,那是纯浪费钱的事情,老手机又不卖了,还给老手机适配新系统,那我的老用户还怎么愿意买新手机?

2017.12.22更新

我搞错了这个project的弄法。这个project是安卓O版本才有的,也就是升级到安卓O之后才有,安卓O以前不存在的。换句话说,只要不升级O版本,就没有这个project;但是升级到O版本之后,也不一定支持此project,需要OEM厂商不阉割此功能。也就是说,PT对于这次安卓N到O的适配基本无加速作用,以后则还需要继续观察。联想到某国产旗舰最近出的“旗舰机”连O版本自带的LDAC都能阉割掉,更加说明这个玩意没什么用了。该碎片化的还是要碎片化。

2018.01.17更新

最近华为的印度官方twitter亲自说明荣耀8“因为兼容性问题无法更新到安卓8.0”,再次证明了我的观点。目前安卓O漏洞百出,而且从N到O还是要走以前升级的老路,即自底层完全地给硬件做最新的驱动,光是debug就能整垮一堆人,更能得出结论证明,treble对现有的安卓市场升级到O版本可谓是几乎没有推动作用。至于以后,考虑到现在一堆新上的自带O版本的手机都不支持treble,我对这个project能带来的作用也不持乐观的态度。

不过,对于带了treble的手机来说,也许就是好事了,以后直接更新安卓版本就行,可能会有点用。

2018.01.26更新

看来还是低估了华为啊。。自打自脸,还打了我的脸。。。不过作为荣耀8用户还是比较高兴的

2018.03.31更新

最近听说安卓P将把PT纳入系统底层做成不能阉割的一部分,如果是这样的话,那对于普及安卓的系统更新就还是有些推力的,只是看到这一幕应该要明年以后了。至于现在,全球一众OEM厂商升级安卓O的进度,可以说是比去年升级安卓N还要慢啊。。。

另,荣耀官方最近证实,搭载麒麟655(麒麟65x系列真是命长,从2016年上半年开始到现在还在用,从始发安卓M到始发安卓O,看来稳定性很不错啊)的荣耀畅玩6X将加入升级安卓O的机型队列。友商们要加油了哦。(笑)

此外还有句题外话,我有点怀疑安卓O的LDAC不是白送,而且新手机要上安卓O自带的LDAC要给索尼付授权费。不仅是华为荣耀系和nova系的手机阉割LDAC,就连小米新出的旗舰mix 2s也把这个模块拿掉了。白送的东西还不要,这种事只有笨蛋才会做。

真正的效果等9.0就能看出来了(逃

华为这次动作真的很快,点个赞 (本人从闪存门开始华为一生黑),希望国内其他厂商也能够快速跟进,不过升级版本快是好事,在国内的安卓软件环境下软件兼容性还是需要担心的,今年首发的华为Mate10系列就存在各种软件闪退问题

第三方ROM更容易开发了

谢邀,这个项目真的很棒啊,可以改善碎片化问题,还能做出通用刷机包,刷机更加随意了。作为一个不刷机会死星人,大大的好处等着我,可惜一加5不支持。

菊花家手机的可以不用看了,跟你们没关系了,反正你们也没这功能了。