DRM在Android中

相关原创文章:
数字版权管理DRM
DRM在Android中(2)——HAL
DRM-widevine 总结
DRM-Playready总结
ExoPlayer+Shaka-packager播放自制DRM视频

1. 前言

​目前主流的DRM技术有Widevine、Playready、Marlin、Verimatrix等。DRM技术的实现方式和与Android的对接方式都各不相同。

​在实现方式上分有不同的安全级别,低安全级的实现方案一般没有使用到Secure OS,DRM操作在Normal World中完成。高安全级的实现方案则采用了Secure OS,将DRM操作放到Secure World当中进行,保证DRM操作的安全性。例如,widevine的L3级别是不需要secure os, 而L1级别需要使用secure os;playready sl2000不需要secure os, 而sl3000需要secure os。

在与Android的对接方式上,有的技术方案沿用Android DRM Framework,与之对接实现DRM管理,有的则摒弃Android DRM Framework,提供自己的上层调用API,对接方式较为自由。在对接Android DRM Framework架构上,由于Android的升级,在Android O版本后开始使用DRM HAL方式,当然也兼容之前的passthrough形式。而HAL发展到当前的AndroidQ已到了drm hal1.2了。

2. 框架

下面主要讲述Android标准的DRM架构(基于AndroidQ)。

Android的官方说明在这里:DRM

对于硬件抽象层的图,增加底层硬件的说明:
在这里插入图片描述
其实对其框架进行概括,可以归纳为如下图:
在这里插入图片描述
当然,在实际使用上,会涉及到需要细节,从APP应用的调用,到framework,到drm hal,到drm 各插件,到播控流程,到硬件,到解密,到解码,到buffer的控制等等,很多细节都需要掌握。当然,对每个插件的具体运作,又是每个解密系统的各自特色,需要使用者对其有充分了解。如果需要对接高安全级别的,那么又需要对各个硬件的知识,android, linux 内核的各种配置有所了解。

因此,如果需要在项目中对接DRM模块,几乎需要把整个Android系统(包括linux 内核),从顶层到底层整条通路过一遍。

3. 插件与开发

如果想要知道android 设备支持了哪些DRM 插件,可以使用DRM Info来查询。如图:
在这里插入图片描述
在app端开发,可以参考开源项目Exoplayer
对接插件,需要跟相应的插件提供商进行了解与购买。列出几个官方渠道:

插件的对接类图如图所示:
在这里插入图片描述
博文为ganqiuye原创,转载请附上原文出处链接和本声明。

4. 应用

4.1 GMS测试

对一些需要过GMS认证的android产品来说,这个drm的测试是必不可少的,而测试的drm插件会测试到google的clearkey和widevine。

其中clearkey的代码位于frameworks/av/drm/mediadrm/plugins

而widevine一般在发布的sdk中是以库的形式给出,源码需要向google获取,经调试后整合到sdk中。
GMS相关测试有:

  • GTS: GtsMediaTestCases 、GtsExoPlayerTestCases、GtsYouTubeTestCases

  • vts: VtsHalDrmV1_1Target

  • cts:

4.2 netflix

通过netflix可以播放一些版权视频,但需要注册缴费。

netflix主要是走widevine进行数字版权控制,但通过反编译其app,可以看见也有使用playready。走的播放框架是exoplayer。

4.3 国内视频平台

使用DRM技术的内容提供商,一般都有两种服务器,一种提供加密片源内容,一种提供license。

​据了解目前有使用DRM技术的,应该有爱奇艺,芒果TV。

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值