DRM 基本介绍

1. DRM定义

DRM(Digital Rights Management), 是便于内容提供商对其提供的媒体对象(比如图片、音频、视频等)进行保护和控制的一种技术。内容提供商会给媒体对象授予相应的版权对象,版权对象中包含了媒体对象的密钥,使用方式等信息。在手机中,版权对象以文件的形式被存储在系统盘中的@DRM\ro\中,对用户是不可见的。一般来说,在打开有版权限制的媒体文件时,会先去相应的检查版权文件中的版权信息,用来获得是否被允许访问的权限(每个有版权限制的媒体文件都会有且仅有的一个版权文件相关联)。如果有权限则可以进一步打开相应的媒体文件,如果没有权限,则会有”Locked”的提示,从而无法打开媒体文件。在打开有版权限制的文件之后,版权文件会有相应的更新,例如若媒体文件只能被打开3次,这次打开后就会减少1次,还剩下2次被打开的权限,若是再打开两次后,则由于没有了打开权限从而无法再打开此媒体文件。

2. DRM的协议以及是否支持DRM

目前国际上主流DRM技术标准主要包括:OMA DRM, Microsoft DRM, 3GPP DRM。平台主要是支持OMA DRM。OMA DRM协议有两个版本:OMA DRM 1.0和OMA DRM 2.0。若想了解项目对DRM的支持情况,请查看make file中的DRM_SUPPORT和DRM_VERSION的定义,若DRM_SUPPORT= NONE, 说明此项目没有开DRM功能;若是想支持OMA DRM 2.0,是使用BACI的方案,此时需要先购买第三方的license。

如果无法确定从某个网站获取到的是DRM文件,可以去检查HTTP response header中的content type字段,如果是以上的任何一种,说明获取到得是DRM文件。提取HTTP协议数据的方法请参见FAQ00547。

测试网址:http://202.108.92.230

3. DRM重置

DRM是用在处理受保护的媒体文件(例如音乐,图片,视频),它的使用需要基于OMA DRM v1.0标准的服务器的支持。例如,使用者先从服务器端下载一个受保护的mp3文件,由于此文件是加密的,所以需要获取license才可以播放。这时使用者再向内容提供商付费后得到license文件(例如通过wap push message获取),经过DRM engine处理之后,就可以播放之前的mp3文件了。这个license同时也限制媒体文件的使用,例如限制最多只能播放3次,或是只能在某个时间段内播放等。更详细的内容需要了解OMA DRM v1.0 “数字版权管理”标准,以及向内容提供商(例如运营商)了解相关要求。

注:“DRM 重置”是指可以一次性全部清空保存在手机上的license,在清空之后原有的受保护的媒体文件就都不能播放或者是观看了。

4. License Manager(DRM Right Manager)菜单

RO指DRM权限文件。
▪ License list
– List all the RO in the file system
▪ Status
– Version info etc.
▪ Advance
– Sweep
• Remove the useless RO
– Space check
• Check whether the storage for RO is enough or not

5. DRM类型说明

<1>FL(Forward Lock):
媒体对象被置于DRM Message被下载到移动终端。用IMEI做为唯一的识别码.由于DRM Message没有带版权对象,所以通过这种方式获得到的媒体文件的使用是不收限制的,唯一的限制是不能够被转发出手机。
FL文件可以设置为铃声,壁纸(OmaDrmStore.java)等。
MimeType: application/vnd.oma.drm.message

<2>CD(Combined Delivery):
媒体对象和相应的版权对象组合在DRM message中,被同时下载到手机中,通过DRM agent的处理后,会形成媒体文件和相应的版权文件来配合使用。
目前的CD文件大致包括以下几类:
a.有次数限制的,如count 5 times,只允许播放5次
b.有期限限制的,如2016年7月8日12点—2016年7月10日18点
c.期限截止的, 如2016年9月5日之前.
d.次数和期限结合的,如2016年7月10日—-2016年7月13日,count 5,,就是在这期间只能播放5次且用户不可以手动更改时间来把已过期的CD文件变为有效的文件
MimeType: application/vnd.oma.drm.message

<3>SD(Separate Delivery):
媒体对象和相应的版权对象是分开的,能各自独立被手机获得。比如手机端会通过http下载的方式先得到媒体对象,此时由于没有版权文件,是不能使用此媒体对象的。若需要使用还得花钱去购买权限RO,只有获得有效的RO,才可以播放SD文件,同CD一样,SD文件也是无法通过更改手机时间来把已过期的SD文件变为有效的文件。
SD文件可以通过MMS进行发送.但是发送之前,用户必须购买SD的RO权限才可以经过MMS,BT,EMAIL等发送。
如果用户只是用SD的内容文件去发送,可以发送出去,但是接收端的用户也是无法使用该SD文件的。
MimeType:
application/vnd.oma.drm.content
application/vnd.oma.drm.rights+xml
application/vnd.oma.drm.rights+wbxml

6. DRM基本信息

<1> DRM 支持版本:
OMA DRM V1.0
Widevine L3.

<2>OMA DRM 支持 MIME格式:
a.DRM content MIME:
application/vnd.oma.drm.content —- .dcf
application/vnd.oma.drm.message —- .dm
b.权限文件的MIME:
application/vnd.oma.drm.rights+wbxml —- .drc
application/vnd.oma.drm.rights+xml —– .dr
c.支持的非DRM protected的Image/Audio/Video格式,DRM就支持此media格式。DRM只是
做了权限控制而已,DRM能支持的media格式就是Decoder能支持的格式。

<3>OMA DRM 支持类型:
默认支持FL、CD、SD类型(DRM_APP=yes)
ifeq ($(strip $(DRM_APP)),yes)
PRODUCT_PACKAGES += \
libdrmplugin \
drm_chmod \
libdcfdecoderjni
endif
PRODUCT_PACKAGES += libdrmplugin
ifeq ($(strip $(DRM_APP)),yes)
PRODUCT_PACKAGES += \
drm_chmod \
libdcfdecoderjni
endif

改为只支持FL类型:

ifeq ($(strip $(DRM_APP)),yes)
PRODUCT_PROPERTY_OVERRIDES += \
drm.forwardlock.only=true
endif

7. Widevine和OMA

两者是独立的,可通过宏控制Widevine L3的开关:
<1>L3:
WVDRM_SUPPORT = yes
WVDRM_L1_SUPPORT = no
<2>L1:
WVDRM_SUPPORT = yes
WVDRM_L1_SUPPORT = yes
<3>disable widevine:
WVDRM_SUPPORT = no
WVDRM_L1_SUPPORT = no