Android开发DRM架构DRM工作流程介绍

  次阅读 作者:智能小宝 来源:互联网 2016-01-19 12:05 我要评论(0)

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

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

一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软件架构。

图1Android中DRM软件架构

由图1可知:

DRM Framework API模块是Framework层暴露给App的接口。该模块中最主要的类是DrmManagerClient。

DRM Framework API模块通过Binder机制和位于drmserver进程(以Android 4.1为例,drmserver的代码位于framework/av/drm/drmserver)中的DRM Manager模块通信。DRM Manager加载并管理系统中所有的DRM插件。

DRM Plugins是真正实现权限管理、数字内容解密等工作的模块。根据DRM标准的不同,这些Plugins的实现亦不相同。另外,一个手机可能会集成多个 DRM Plugin。这是因为媒体文件如果采用不同的DRM解决方案进行加密的话,手机在播放它们时,DRM Manager需找到对应的DRM Plugin以进行解密。

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

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

由图2可知:

FileSource代表一个媒体文件。如果媒体文件中有DRM信息,它将创建一个DrmManagerClient对象。该对象用于处 理媒体文件中和DRM相关的操作。DrmManagerClient内部通过DrmManagerClientImpl和位于drmserver进程中的 DrmManagerService进行跨Binder通信。

MediaExtractor类封装了用于解析媒体文件中元数据的相关函数。对于DRM来说,系统会根据的DRM种类创建不同的 MediaExtractor子类。和FileSource类似,MediaExtractor也通过DrmManagerClient和 drmserver通信。

DrmManagerService运行于drmserver进程中,它是整个DRM框架的核心。DrmManagerService借 助DrmManager管理系统中的DRM插件。

DRM插件必须实现IDrmEngine接口。为了方便开发者,Android提供了DrmEngineBase类,该类继承了 IDrmEngine接口并实现了一些通用的接口函数。这样,DRM Plugin只需要从DrmEngineBase派生即可。

如前文所述,DRM框架中真正完成DRM处理工作的是DRMPlugins,这些Plugins大都需要得到相关机构的授权后才能得到相 应的专利代码包。图1中列出了三个DRM Plugin。其中FwdLockEngine(OMA-V1的Forward Lock)由AOSP提供。Marlin Plugin和WidevinePlugin则需要相关DRM机构提供专利代码包。

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

二DRM工作流程介绍

2.1DrmManagerService的初始化

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

图3DrmManagerService启动流程

由图3可知:

DrmManagerService实例对象由drmserver进程在main函数中调用instantiate创建。

DRM

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...