日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Android DRM解析

 開花結(jié)果 2012-07-17
簡(jiǎn)而言之,DRM系統(tǒng)提供一套機(jī)制對(duì)用戶使用手機(jī)上的媒體內(nèi)容(如ringtong, mp3等)進(jìn)行限制,如限制拷貝給第三方,限制使用次數(shù)或時(shí)限等,從而保護(hù)內(nèi)容提供商的權(quán)利。建議讀者可以閱讀OMA DRM 的規(guī)范,以便更好的了解代碼。

相關(guān)代碼主要位于下列目錄:
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

下面先作簡(jiǎn)要分析:
frameworks/base/media/libdrm/moblile1應(yīng)該是提供OMA DMA1.0的本地/c++ 實(shí)現(xiàn)
frameworks/base/media/libdrm/moblile2應(yīng)該是提供OMA DAM2.0的本地/c++ 實(shí)現(xiàn)。

frameworks/base/media/java/android/drm/mobile1 對(duì)應(yīng)用提供OMA DRM 1.0 (即frameworks/base/media/libdrm/moblile1)的java接口。目前尚沒有OMA DRM 2.0的java接口,也就意味著OMA DRM 2.0在Android中尚未應(yīng)用。

packages/apps/Mms/src/com/android/mms/drm 實(shí)現(xiàn)在MMS中如何使用DRM。
packages/providers/DrmProvider/src/com/android/providers/drm ?

下面再作具體介紹:
一 目錄 frameworks/base/media/java/android/drm/mobile1
這個(gè)目錄是OMA DRM 1.0的java 接口。
OMA DRM 1.0 定義了幾個(gè)重要概念:
DRM消息(DRM message):用戶下載的一條DRM內(nèi)容。根據(jù)下面介紹的DRM內(nèi)容 傳輸方式的不同,DRM消息中包含的內(nèi)容亦有所不同,可能只包含一個(gè)未經(jīng)加密的媒體對(duì)象;也可能即包含未加密的媒體對(duì)象,也包含一個(gè)權(quán)利對(duì)象;也可能只包含一個(gè)經(jīng)過加密的媒體對(duì)象(.dcf)。
媒體對(duì)象 (media object):包含媒體資源,如一個(gè)mp3, ringtone等。
權(quán)利對(duì)象(Right object): 限制用戶如何使用媒體對(duì)象。


OMA DRM 1.0 定義了DRM內(nèi)容的四種傳輸方式:
1. Combined delivery: 這種傳輸方式中,媒體對(duì)象以未經(jīng)加密的方式(plain) 與Right object打成一個(gè)包,一塊傳輸。這個(gè)包下載到手機(jī)設(shè)備上后,不允許轉(zhuǎn)發(fā)給其他設(shè)備。
2. Forward lock: 這種傳輸方式是combined delivery的一個(gè)特例。媒體對(duì)象沒有對(duì)應(yīng)的Rigth object。媒體對(duì)象不允許轉(zhuǎn)發(fā)給其他設(shè)備
3. Separate delivery: 媒體對(duì)象和權(quán)利對(duì)象分別傳輸。媒體對(duì)象采用對(duì)稱密鑰加密,文件以.dcf為后綴。權(quán)利對(duì)象中則包含對(duì)應(yīng)的密鑰。
4. Superdistribution:類似separate delivery, 但媒體內(nèi)容允許轉(zhuǎn)發(fā)給其他設(shè)備。

相應(yīng)地,本目錄的代碼中:

DrmConstraintInfo對(duì)象描述了(對(duì)媒體內(nèi)容的)一組限制屬性,如開始/結(jié)束使用日期,使用次數(shù)等;

DrmRights對(duì)象代表了一個(gè)OMA 權(quán)利對(duì)象。

DrmRightsManager管理設(shè)備上的Rigth Objects。所有下載的權(quán)利對(duì)象,不論是由separate delivery 還是 combined delivery,權(quán)利對(duì)象都要首先安裝到設(shè)備上。
DrmRawContent代表一條DRM內(nèi)容,分為兩類:DRM_MIMETYPE_MESSAGE_STRING --DRM內(nèi)容是經(jīng)combined delivery 或 forward lock傳輸?shù)?(也即媒體對(duì)象沒有加密,沒有或者有一個(gè)權(quán)利對(duì)象); DRM_MIMETYPE_CONTENT_STRING -- DRM內(nèi)容是經(jīng) separate delivery傳輸?shù)模ㄒ布疵襟w對(duì)象是經(jīng)過加密的dcf格式,不包含權(quán)利對(duì)象)。

DrmInputStream:這個(gè)對(duì)象從一個(gè)DrmRawContent對(duì)象中讀出經(jīng)過權(quán)利對(duì)象驗(yàn)證并解密后的(需要的話)媒體對(duì)象內(nèi)容。這個(gè)內(nèi)容之后就可以傳給相關(guān)應(yīng)用輸出給用戶。


二 目錄frameworks/base/media/libdrm/moblile1
本目錄真正實(shí)現(xiàn)DRM DRM 1.0。
drm1_jni.c提供對(duì)DrmRawContent中方法的本地實(shí)現(xiàn);
objmng目錄下是具體實(shí)現(xiàn)。frameworks/base/media/libdrm/mobile1/include/objmng/svc_drm.h中有關(guān)于每個(gè)方法的詳細(xì)解釋,基本思路是每打開一個(gè)Drm 內(nèi)容,就創(chuàng)建一個(gè)session,然后提供一系列方法,以此session為參數(shù),對(duì)Drm進(jìn)行各種操作,如獲取屬性,讀取解密后內(nèi)容等。這里不再贅述。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多