隨著Android 7.0 Nougat的正式發(fā)布,各大廠商也開始公布自己的升級(jí)計(jì)劃。在他們已經(jīng)公布的升級(jí)機(jī)型名單當(dāng)中,我們發(fā)現(xiàn)了一個(gè)奇怪的現(xiàn)象:在2013-2014年期間發(fā)布、且采用驍龍800/801芯片的機(jī)型都不會(huì)獲得Nougat升級(jí),其中包括Xperia Z3、HTC One M8和谷歌Nexus 5。
第三方ROM開發(fā)者LlabTooFeR指出,高通將不會(huì)為驍龍800/801發(fā)布圖形驅(qū)動(dòng),因此采用該處理器的機(jī)型都不會(huì)獲得官方Android 7.0支持。對(duì)此,高通的回應(yīng)稱他們“一直在與OEM廠商緊密合作,來為驍龍芯片提供不同版本Android系統(tǒng)的支持”。但是,一款芯片受支持的時(shí)間長度和可升級(jí)的系統(tǒng)版本“取決于OEM廠商的產(chǎn)品周期”。
如此看來,兩款芯片的年紀(jì)的確是個(gè)問題,這可能也是上面幾家廠商不打算為其提供新版本升級(jí)的原因。但如果廠商想要為驍龍800/801提供Android 7.0升級(jí),這是否可以辦到呢?
索尼
索尼一直在為Xperia Z3積極開發(fā)Android 7.0升級(jí),這款設(shè)備已經(jīng)擁有自己的Android N開發(fā)者預(yù)覽項(xiàng)目,且已經(jīng)升級(jí)到了第四個(gè)版本——這也表明Android 7.0在這兩款芯片上面能夠正常運(yùn)行。但“由于技術(shù)和法律原因”,第五版開發(fā)者預(yù)覽版至今沒有發(fā)布。
索尼移動(dòng)通信的員工Ola Olsson在Google+中對(duì)這個(gè)問題進(jìn)行了解釋:“這的確有點(diǎn)遺憾,但我們不想去推卸責(zé)任,因此也不能透露更多技術(shù)上的限制。即便我們非常想要讓Z3升級(jí)Android N,但還是沒能做到。我們不是不想通過谷歌CTS認(rèn)證”
谷歌
看樣子這似乎是谷歌的問題。那什么才是谷歌CTS認(rèn)證呢?對(duì)于廠商而言,想要獲得谷歌的系統(tǒng)授權(quán),他們就必須遵守谷歌的Android兼容性定義文件(CDD),當(dāng)中對(duì)一部Android兼容設(shè)備的軟件和硬件要求做出了定義。隨后,廠商的設(shè)備還需要通過兼容性測(cè)試,也就是CTS。
綜上所述,LlabTooFeR說高通不會(huì)發(fā)出圖形驅(qū)動(dòng),高通說(升級(jí)與否)是廠商決定的,而索尼表示這都怪谷歌。這也就引來了新的問題:Android 7.0的CDD和CTS當(dāng)中究竟有什么內(nèi)容讓Nexus 5、HTC One M8和Xperia Z3無法獲得升級(jí)許可呢?在處理器方面,我們大體上可以將其歸類為3種標(biāo)準(zhǔn):受支持的指令集、GPU和性能。
從可獲得Nougat升級(jí)的設(shè)備清單當(dāng)中,我們有如下發(fā)現(xiàn):
這些設(shè)備所涵蓋的GPU型號(hào)包括Adreno 306、430和Mali-T860。
這些設(shè)備的處理器性能差距很大,從Helio P10、驍龍410、一直到驍龍820。
大多數(shù)設(shè)備都采用64位處理器
可以看出,GPU和性能都不是限制Nougat升級(jí)的原因。但值得注意的是,大多數(shù)可升級(jí)的機(jī)型都是64位設(shè)備,或者更具體一些,是ARMv8設(shè)備。那這些64位設(shè)備身上到底有什么是驍龍800/801所不具備,但32位的驍龍805卻擁有的呢?不是GPU,不是性能,也不是臆想出來的4GB RAM限制。那到底是什么呢?
ARMv8和高級(jí)加密標(biāo)準(zhǔn)
谷歌正越來越熱衷于強(qiáng)制使用存儲(chǔ)加密技術(shù)。Android 6.0的CDD就指出,“如果設(shè)備支持安全鎖屏……那它就必須支持全盤加密”,以及“全盤加密必須在用戶完成初始設(shè)置時(shí)默認(rèn)開啟”。此外,CDD還對(duì)加密性能作出要求,稱“設(shè)備在支持全盤加密和高級(jí)加密標(biāo)準(zhǔn)時(shí)的速度必須高于50MB/s”但是,CDD中還包含一些豁免條款允許較老的設(shè)備不啟用存儲(chǔ)加密。
Android 7.0采用了基于文件的加密方式,這也就意味著系統(tǒng)會(huì)對(duì)單個(gè)文件而非整個(gè)文件系統(tǒng)進(jìn)行加密。這種加密方法讓Android得以使用更加精細(xì)的加密政策,也實(shí)現(xiàn)了Direct Boot功能。而Android 7.0的CDD雖然還未發(fā)布,但當(dāng)中肯定也會(huì)對(duì)AES加密性能水平作出規(guī)定,而CTS也免不了會(huì)對(duì)其進(jìn)行測(cè)試。
ARMv8的額外功能之一就是執(zhí)行硬件加密指令的加入。這也就是說,所有ARMv8 SoC都可以使用處理器中的特殊硬件來利用AES來進(jìn)行數(shù)據(jù)加密,包括Helio P10、驍龍410和驍龍820,這要比使用基于軟件的解決方案要快得多。
因此索尼提到的“技術(shù)和法律”原因可能就是驍龍800/801并不支持硬件加密,因此無法達(dá)到ARMv8芯片的AES加密速度。而驍龍805卻擁有該功能所需的硬件——這是高通特意為其所加入的。
也就是說,驍龍800/801支持Android 7.0并沒有任何技術(shù)限制,而是因?yàn)樗鼈儫o法達(dá)到谷歌對(duì)于高速加密的要求,如此一來,兩者也就無法通過CTS測(cè)試,也不符合CDD標(biāo)準(zhǔn)。