如何将Android带入互联网数字家庭? 终极篇
2011-08-09
作者:章立 ARM家庭软件架构师
在第一篇中,我们分享了数字家庭软件平台的发展趋势和特点;
在第二篇中,我们归纳了将Android移植到电视、机顶盒平台需要面对的五大技术挑战并重点探讨了挑战1 : 符合电视体验的2D/3D图形性能和用户交互模式方面的挑战。
在第三篇中, 我们探讨了更多的挑战, 包括“适合大屏的丰富多媒体影音体验”,“如何集成数字电视相关功能”, “如何推动应用开发者开发适合于TV的Android应用”;
在本篇中,我们将一起来关注在内容保护/系统安全方面的挑战以及Android TV和GoogleTV的一些简单对比。
-
挑战 5 : 如何部署内容保护:
- 如何部署CA?
- 如何部署DRM?
在第三篇中,我们已经谈过对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的出现可以极大的加速数字家庭的互联智能化的进程,使其迅速与其他智能设备在家庭中实现互通融合,实现真正的智能家庭!(全篇完)
章立(Leon Zhang) 是ARM的家庭软件架构师 ,同时他也是ARM战略软件联盟部门的一员. Leon 拥有多年产品开发和项目管理经验, 曾经参与了数字录像机、机顶盒、数字电视,网络电视以及智能电视(如GoogleTV)等产品的开发。作为家庭软件架构师,他专注于下一代互联网智能电视及数字家庭的软件架构. 而作为战略软件联盟的成员,他致力于为ARM家庭应用市场的合作伙伴建立强大的软件生态系统。 Leon 硕士毕业于同济大学。 他的工作地点在中国上海.