本文共 2232 字,大约阅读时间需要 7 分钟。
简而言之,DRM系统提供一套机制对用户使用手机上的媒体内容(如ringtong, mp3等)进行限制,如限制拷贝给第三方,限制使用次数或时限等,从而保护内容提供商的权利。建议读者可以阅读OMA DRM 的规范,以便更好的了解代码。
相关代码主要位于下列目录: frameworks/base/media/java/android/drm/mobile1 frameworks/base/media/libdrm/moblile1 frameworks/base/media/libdrm/mobile2 packages/apps/Mms/src/com/android/mms/drm: drm packages/providers/DrmProvider/src/com/android/providers/drm 下面先作简要分析: frameworks/base/media/libdrm/moblile1应该是提供OMA DMA1.0的本地/c++ 实现 frameworks/base/media/libdrm/moblile2应该是提供OMA DAM2.0的本地/c++ 实现。 frameworks/base/media/java/android/drm/mobile1 对应用提供OMA DRM 1.0 (即frameworks/base/media/libdrm/moblile1)的java接口。目前尚没有OMA DRM 2.0的java接口,也就意味着OMA DRM 2.0在Android中尚未应用。 packages/apps/Mms/src/com/android/mms/drm 实现在MMS中如何使用DRM。 packages/providers/DrmProvider/src/com/android/providers/drm ? 下面再作具体介绍: 一 目录 frameworks/base/media/java/android/drm/mobile1 这个目录是OMA DRM 1.0的java 接口。 OMA DRM 1.0 定义了几个重要概念: DRM消息(DRM message):用户下载的一条DRM内容。根据下面介绍的DRM内容传输方式的不同,DRM消息中包含的内容亦有所不同,可能只包含一个未经加密的媒体对象;也可能即包含未加密的媒体对象,也包含一个权利对象;也可能只包含一个经过加密的媒体对象(.dcf)。 媒体对象 (media object):包含媒体资源,如一个mp3, ringtone等。 权利对象(Right object): 限制用户如何使用媒体对象。 OMA DRM 1.0 定义了DRM内容的四种传输方式: 1. Combined delivery: 这种传输方式中,媒体对象以未经加密的方式(plain) 与Right object打成一个包,一块传输。这个包下载到手机设备上后,不允许转发给其他设备。 2. Forward lock: 这种传输方式是combined delivery的一个特例。媒体对象没有对应的Rigth object。媒体对象不允许转发给其他设备 3. Separate delivery: 媒体对象和权利对象分别传输。媒体对象采用对称密钥加密,文件以.dcf为后缀。权利对象中则包含对应的密钥。 4. Superdistribution:类似separate delivery, 但媒体内容允许转发给其他设备。 相应地,本目录的代码中: DrmConstraintInfo对象描述了(对媒体内容的)一组限制属性,如开始/结束使用日期,使用次数等; DrmRights对象代表了一个OMA 权利对象。 DrmRightsManager管理设备上的Rigth Objects。所有下载的权利对象,不论是由separate delivery 还是 combined delivery,权利对象都要首先安装到设备上。转载地址:http://gdbsi.baihongyu.com/