乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Android DRM解析

       開花結(jié)果 2012-07-17
      簡而言之,DRM系統(tǒng)提供一套機(jī)制對用戶使用手機(jī)上的媒體內(nèi)容(如ringtong, mp3等)進(jìn)行限制,如限制拷貝給第三方,限制使用次數(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

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

      frameworks/base/media/java/android/drm/mobile1 對應(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 實現(xiàn)在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內(nèi)容。根據(jù)下面介紹的DRM內(nèi)容 傳輸方式的不同,DRM消息中包含的內(nèi)容亦有所不同,可能只包含一個未經(jīng)加密的媒體對象;也可能即包含未加密的媒體對象,也包含一個權(quán)利對象;也可能只包含一個經(jīng)過加密的媒體對象(.dcf)。
      媒體對象 (media object):包含媒體資源,如一個mp3, ringtone等。
      權(quán)利對象(Right object): 限制用戶如何使用媒體對象。


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

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

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

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

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

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


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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多