13518219792

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

DRMinAndroid详解

RM,英文全称为Digital Rights Management,译为数字版权管理。它是目前业界使用非常广泛的一种数字内容版权保护技术。随着知识产权保护受重视的程度日益提高,快速攻城略地得Android智能手机是如何利用DRM来有效保护数字版权的呢?本文将通过剖析Android中的DRM框架以及相关工作流程来向读者揭示DRM的神秘面纱。

创新互联公司长期为1000+客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为青河企业提供专业的网站设计、成都做网站青河网站改版等技术服务。拥有十多年丰富建站经验和众多成功案例,为您定制开发。

一  DRM架构介绍

严格来讲,DRM不是一项技术,而是一类技术。很多机构和联盟都提出过相应的DRM标准。例如Open Mobile Alliance推出的OMA DRM、Marlin Developer Community提出的Marlin DRM,而Google则通过收购Widevine公司推出了Widevine DRM。

从Android智能终端来看,Google的原生Android(Android Open Source Project,简称AOSP)系统仅仅集成了OMA DRM V1的一部分功能,它远未构成一个完整的DRM解决方案。在这种情况下,设备厂商只能根据情况选择合适的DRM解决方案并集成到Android平台中来。例如,手机厂商可以通过Google的授权以获取Widevine DRM对应的软件包从而将Widevine DRM集成到自己的产品中。

为了方便设备厂商的集成,Android设计了一个通用的DRM软件框架,不同的DRM解决方案可通过Plugin的方式集成到Android系统中。图1所示为Android中的DRM软件架构。

图1  Android中DRM软件架构

由图1可知:

图2所示为DRM架构中几个重要的类及其关系。

图2  Android中DRM架构中重要类图

由图2可知:

下面来看看Android中DRM的工作流程。

二  DRM工作流程介绍

2.1  DrmManagerService的初始化

DRM的工作流程和多媒体播放密切相关。首先来了解一下DrmManagerService的创建过程,相关流程如图3所示:

图3  DrmManagerService启动流程

由图3可知:

下面来介绍DRM的工作流程。Android支持的DRM播放方式分为两种:

这两种不同的方式在播放流程上不尽相同。下文将以一个播放具有DRM保护的MP4文件为例,介绍DRM的工作流程。首先来看ES BasedDRM媒体播放工作流程

2.2  ES BasedDRM播放流程

ES Based DRM意味着每一个数据基元在播放时都需要解密。这种DRM的媒体文件或流可以使用普通方式正常读取,但读取出来的数据是经过加密的。如果不能对数据正确解密,那么该数据将无法正常播放。

在播放媒体文件之前,播放器首先要识别该文件是否被DRM保护。如果受DRM保护的话,还行初始化对应的DRM插件。这部分工作所涉及的流程如图4所示:

图4  ES BasedDRM插件初始化

#p#

由图4可知:

(1)调用openDecryptSession,该函数内部会根据文件中的DRM信息来初始化正确的DRM Plugin(Widevine、OMV,还是其他DRM类型)。

(2)创建DecryptSession,并将DRM信息封装在DecryptHandler实例中传给FileSource。

MediaExtrator创建完后,播放器即可开始播放。ES Based DRM播放相关流程如图5所示:

图5  ES Based的DRM媒体文件播放流程

图5所示的流程图可分为三个阶段:

回顾上述流程,对ES Based DRM的特点是,不论用户是否有权限,播放器都能读取到媒体数据。

下面来看看Container Based DRM的播放流程。

2.3  Container Based DRM播放流程

和ES Based DRM截然不同的是Container Based DRM。受控于这种DRM管理的媒体文件在被读取时就会进行DRM的权限验证,如果验证失败,则无法从中读取到数据。故Container Based DRM最关键的是其pread接口,相关流程如图6所示:

图6  ContainerBasedDRM播放流程图

如图6可知:

上文介绍了Android平台中DRM播放的大体流程。下面来看看Google主推的Widevine DRM。

三  Widevine DRM介绍

2010年12月,Google不惜重金将视频数字版权管理软件公司Widevine招安。现在看来,Google的这一招为Android阵营增添了一员上将,有Widevine坐阵中军,Android就有实力在数字内容这片战场上与已故乔帮主的苹果一较高下。

在收购Widevine之前,Android没有系统的数字版权保护机制,而苹果则在iTunes、iPod时代就建立了完善的版权体系,这让很多内容提供商更愿意在iOS上发布自己的数字内容,从而使得iOS的生态系统更加丰富和成熟。Widevine的引入弥补了Android在这方面的短板,它是帮助Android成为当今移动OS霸主的功臣之一。

Android从3.0开始就支持Widevine,这距离Google收购Widevine仅仅过去了三个月,可见Google对于数字版权保护的迫切性。现在Widevine已经成为GMS(Google Mobile Service)中必备的内容,所有想要得到GMS的手机厂商,都需要根据GMS的要求搭载Widevine。

作为Google帐下的爱将,Google为支持Widevine也煞费苦心。目前Android平台中播放Widevine DRM媒体有两种方法:

图7  Widevine Crypto Plugin

由图7可知:

需要特别指出的是,Android目前对MediaCodec模式支持还不是很完善。根据笔者的试验,一些市面上流行的高端Android 4.1手机还不支持这种播放方式。

另外,Widevine的代码结构大体可分为三部分:

由于专利代码包和厂商安全机制都涉及到版权问题,故本文就不拟对Widevine做进一步讨论了。如果厂商希望在自己的产品上也搭载Widevine,那么首先需要与Google联系。Google会提供Widevine的专业培训。

四  总结

本文主要讲述了Android中DRM的运行机制。事实上,DRM是一个不易触及的领域。由于其安全性高,保密性强,世界上真正掌握DRM核心技术的公司并不多。根据笔者的调查,DRM产业链中的相关者大概可分为如下三类:

然而,国内DRM并不非常受欢迎。笔者对于国内的版权保护并无批评之意。只是由于国内数字内容发展的过程比较特殊,最终形成了当下这种以免费内容占主流的市场氛围和消费习惯。对于国内市场,任何一种强行主推DRM的收费模式的方法目前看起来还不合适。相信很多互联网巨头已经在其长期的摸索中体会了这一点。

当然这并不是说DRM在国内没有市场。目前很多公司在免费业务之上都加入了基于更高质量的收费业务,从而丰富了盈利的方式。更为重要的是,现在很多中国公司都在向国外扩张,而中国公司走到外面,就必须入乡随俗,遵从国外的游戏规则。这时,数字版权保护以及建立在其之上的DRM技术就成了一个必须要重视的问题。在此,笔者真心希望有一天国内能有更多优秀的公司走出国门,在中国模式和世界模式间找到平衡点,将我们自己的数字内容和终端产品推向世界。


当前文章:DRMinAndroid详解
本文路径:http://cdbrznjsb.com/article/dpegces.html

其他资讯

让你的专属顾问为你服务