星期二, 8月 30

高通 800、801 未能升上 7.0 的原因是 ... ...

隨著Android 7.0 Nougat的正式發布,各大廠商也開始公佈自己的升級計劃。在他們已經公佈的升級機型名單當中,我們發現了一個奇怪的現象:在2013-2014年期間發布、且採用驍龍800/801芯片的機型都不會獲得Nougat升級,其中包括Xperia Z3、 HTC One M8和谷歌Nexus 5。


第三方ROM開發者LlabTooFeR指出,高通將不會為驍龍800/801發布圖形驅動,因此採用該處理器的機型都不會獲得官方Android 7.0支持。對此,高通的回應稱他們“一直在與OEM廠商緊密合作,來為驍龍芯片提供不同版本Android系統的支持”。但是,一款芯片受支持的時間長度和可升級的系統版本“取決於OEM廠商的產品週期”。

如此看來,兩款芯片的年紀的確是個問題,這可能也是上面幾家廠商不打算為其提供新版本升級的原因。但如果廠商想要為驍龍800/801提供Android 7.0升級,這是否可以辦到呢?

關於 SONY
SONY 一直在為Xperia Z3積極開發Android 7.0升級,這款設備已經擁有自己的Andr​​oid N開發者預覽項目,且已經升級到了第四個版本——這也表明Android 7.0在這兩款芯片上面能夠正常運行。但“由於技術和法律原因”,第五版開發者預覽版至今沒有發布。

SONY 移動通信的員工Ola Olsson在Google+中對這個問題進行了解釋:“這的確有點遺憾,但我們不想去推卸責任,因此也不能透露更多技術上的限制。即便我們非常想要讓Z3升級Android N,但還是沒能做到。我們不是不想通過谷歌CTS認證”

android 7.0 的硬體要求
從可獲得Nougat升級的設備清單當中,我們有如下發現:

這些設備所涵蓋的GPU型號包括Adreno 306、430和Mali-T860。

這些設備的處理器性能差距很大,從Helio P10、驍龍410、一直到驍龍820。

大多數設備都採用64位處理器

可以看出,GPU和性能都不是限制Nougat升級的原因。但值得注意的是,大多數可升級的機型都是64位設備,或者更具體一些,是ARMv8設備。那這些64位設備身上到底有什麼是驍龍800/801所不具備,但32位的驍龍805卻擁有的呢?不是GPU,不是性能,也不是臆想出來的4GB RAM限制。那到底是什麼呢?

ARMv8 和高級加密標準

谷歌正越來越熱衷於強制使用存儲加密技術。Android 6.0的CDD就指出,“如果設備支持安全鎖屏……那它就必須支持全盤加密”,以及“全盤加密必須在用戶完成初始設置時默認開啟”。此外,CDD還對加密性能作出要求,稱“設備在支持全盤加密和高級加密標準時的速度必須高於50MB/s”但是,CDD中還包含一些豁免條款允許較老的設備不啟用存儲加密。

Android 7.0採用了基於文件的加密方式,這也就意味著系統會對單個文件而非整個文件系統進行加密。這種加密方法讓Android得以使用更加精細的加密政策,也實現了Direct Boot功能。而Android 7.0的CDD雖然還未發布,但當中肯定也會對AES加密性能水平作出規定,而CTS也免不了會對其進行測試。

ARMv8的額外功能之一就是執行硬件加密指令的加入。這也就是說,所有ARMv8 SoC都可以使用處理器中的特殊硬件來利用AES來進行數據加密,包括Helio P10、驍龍410和驍龍820,這要比使用基於軟件的解決方案要快得多。

因此 SONY 提到的“技術和法律”原因可能就是驍龍800/801並不支持硬件加密,因此無法達到ARMv8芯片的AES加密速度。而驍龍805卻擁有該功能所需的硬件——這是高通特意為其所加入的。

也就是說,驍龍800/801支持Android 7.0並沒有任何技術限制,而是因為它們無法達到谷歌對於高速加密的要求,如此一來,兩者也就無法通過CTS測試,也不符合CDD標準。


沒有留言: