在本篇中,我們將一起來關注在內容保護/系統安全方面的挑戰以及Android TV和GoogleTV的一些簡單對比。
在第三篇中,我們已經談過對CA模組的整合;由於CA模組由各個CA公司嚴格控制,而且CA模組的系統整合由CA公司主導;因此技術上沒有太多挑戰;更多的挑戰在於如何將CA相關的API標準化。 相對與CA, DRM在Android上走的更遠一點, Android 3.0增加了DRM相關的API。 圖一表述了Android3.0是如何?DRM API的。
圖一 Android 3.0 實現DRM
從可以看出, Android3.0實現了一套Java Level的DRM API, 同時也實現了一個C/C++ level的DRM Manager。各個具體DRM策略的實現則是以Plug In的方式link到DRM Manager。 具體的DRM Plug In由各個系統廠商根據實際需要來實現;而應用開發人員則可以根據標準化的DRM API來開發相關的應用。
在實現DRM的過程中, ARM架構級的安全技術TrustZone可以從硬體架構層面加固DRM的安全性。 那麼什麼是TrustZone呢? 簡單點講TrustZone是系統架構層級的安全技術, 它將整個SoC虛擬成“普通世界(Normal World)”和“安全世界(Security World)”兩個模式。在“安全世界模式”下,系統可以訪問所有的資源,包括配置為“安全”和“非安全”的資料存放區/記憶體/外設等;而在普通世界模式下只能訪問配置為“非安全”的資源。圖二表述了TrustZone的架構。
圖二 TrustZone技術
從中,我們可以看到通用的作業系統,比如Android、Ubuntu、ChromeOS、Windows,Symbian等等都運行在“普通世界”,而需要安全加密的服務則運行在“安全世界”, 包括加密用的根密鑰都儲存在“安全世界”。“普通世界”啟動並執行軟體無法訪問“安全世界”的資源,包括被配置為“安全”的資料存放區/記憶體/外設的裝置。圖三從系統架構的角度描述TrustZone是如何工作的。
圖三 TrustZone的系統架構
從圖三,我們可以看出系統中的裝置被分為“普通(Normal)”, “安全(Secure)”, “可配置(Switchable)”三類。因此, TrustZone從系統層級阻斷了“普通世界”對“安全”資源的訪問,從根本上增強了系統的安全性。一個很典型的例子是:在我們現在的智能手機上,通過觸控螢幕輸入密碼,無論運用什麼加密方式來傳遞這個密碼,這些資料始終是在手機作業系統中流動,依舊有被hack的危險。而如果使用TrustZone技術,則可將LCD Controller設定為“可配置”,當使用者需要輸入密碼的時候,可將LCD Controller設定為“安全”, 這樣手機作業系統就無法訪問該裝置,而所有的資料流會直接進入“安全世界”;當使用者輸入密碼結束,再將LCD Controller切回“普通”,這樣手機作業系統又可以正常使用它。
具體到如何將TrustZone技術應用到DRM, 圖四給出了一個用TrustZone來加密DRM的流程圖。
圖四 利用TrustZone加密DRM
到這裡,我們已經討論完了將Android帶入互連網數字家庭的五大挑戰;下面我們來看看Android TV 和 GoogleTV之間的一些對比。
事實上, ARM的夥伴有三個方式部署以Android為base的智能電視:
第一,直接與Google合作通過license GoogleTV, 成為GoogleTV的leading partner;
第二,等待Google開源GoogleTV項目;
第三,將已經開源的Android版本定製移植到電視平台(我的這四篇博文都圍繞著這個選項進行)。
那麼, GoogleTV和Android TV有什麼區別呢?
眾所周知, GoogleTV是以Android為Base。第一代GoogleTV(也就是所
謂GoogleTV 1.0)是以Android2.1為base;而第二代GoogleTV(GoogleTV 2.0)則將Android base的版本更新到3.1。根據Android最新的路線圖,Google將在Ice Cream Sandwich中形成一個適用於電話,平板,電視三類產品的統一的版本。
GoogleTV 1.0去年已經上市, GoogleTV 1.0的軟體架構是以雙系統架構為基礎:GoogleTV Android系統 + DTV系統。 DTV系統由電視系統廠商來開發,一般會選擇重用已有的DTV系統; GoogleTV系統部分則主要關注WebTV的功能上,同時也增加了和DTV系統通訊的控制模組。
GoogleTV雖然是以Android為基礎,但是Google對此做了大量針對電視應用的修改和最佳化,包括瀏覽器升級為Chrome,提升2D/3D Graphic的效能,改進多媒體架構(支援Dual View),最佳化Flash Plug in,新的Home Screen 和 UI Layout等等。但是由於雙系統的設計,GoogleTV內沒有實際DTV的功能模組,只有一些對DTV系統進行控制的通訊模組,包括對外部輸入的控制等等。因此在GoogleTV演化成單系統之前, GoogleTV的SDK中很難加入對DTV功能的API的支援。
從GoogleTV的發展趨勢來看, GoogleTV會向單系統方案進化。實際上,多家ARM的電視晶片夥伴已經在和Google合作GoogleTV項目,相關的產品會陸續上市。另外, Google也有計劃逐步發布GoogleTV的開發工具,包括GoogleTV SDK和NDK以及相關的CTS和CDD。
另外,當ARM的夥伴選擇自己定製移植Android到電視/機頂盒平台時, 我們一般都建議他們從架構層面考慮下面兩點:
第一,如何使得定製化的工作能夠適應Android版本的快速變化?
第二,當GoogleTV開源後,如何能快速的重用在Android TV上的工作?
當考慮清楚上述兩個問題後,可以減少Android TV開發過程的風險,
應對Android版本的快速變化和GoogleTV的可能性開源!
最後, 我想和大家分享的是,今天,不斷湧現的新的互連網裝置,如智能手機,平板已經讓人們花在電視前的時間越來越少, 如果不重新定義電視,如果電視不走互聯化,智能化之路, 電視將沒有未來!在這個過程中, Android的出現可以極大的加速數字家庭的互聯智能化的進程,使其迅速與其他智慧型裝置在家庭中實現互連融合,實現真正的智能家庭!(全篇完)