From 640dc96c73017d3bd2e2c507adcff02046ccfd3f Mon Sep 17 00:00:00 2001 From: Android Partner Docs Date: Wed, 11 Oct 2017 14:15:38 -0700 Subject: Docs: Changes to source.android.com - 171873304 Update documentation for types-only minor version package. by Android Partner Docs - 171849317 Update CTS/CTS-Verifier downloads for CTS-Oct-2017 Releases by Android Partner Docs - 171727609 Updating panic button to 8.0 by hvm - 171724554 Fixing typo by hvm - 171604727 Removed gerund form to match TOC bar on left. by cqn - 171576699 Small editorial changes to make content more skimmable. by cqn - 171546973 Add Clang toolchain to home News section by claym - 171540129 Corrected a typo from "has" to "have" in CTS public setup... by Android Partner Docs - 171354973 Clean-up edits for consistency on the HCI Requirements do... by cqn - 171242784 Explain Clang is lone supported toolchain going forward by claym - 171198827 Added researcher acknowledgement by Android Partner Docs - 171178686 Added researcher acknowledgement by Android Partner Docs - 171169962 Added missing " to jit-workflow.png by daroberts - 171167568 Announce KASAN+KCOV on the home page by daroberts - 171093616 Updated Researcher acknowledgement by Android Partner Docs - 171086588 Add Building a Pixel kernel with KASAN +KCOV by daroberts - 171084549 Move CVE-2017-0710 to Google devices section by Android Partner Docs - 171063850 Removed duped content that is now in /source/view-patches... by cqn - 171061697 Create a /source/view-patches page so that the nav does n... by cqn - 171050148 Update home page with October 2017 security release by daroberts - 171028732 Devsite localized content from translation request 5cdc34... by Android Partner Docs - 170937091 Add tags for October security backport releases (these do... by Android Partner Docs - 170911440 Remove CVE-2017-0605 from bulletin by Android Partner Docs - 170883975 Add AOSP links to the Oct 2017 Android Security bulletin by daroberts - 170883918 Add AOSP links to Oct 2017 Pixel bulletin by daroberts PiperOrigin-RevId: 171873304 Change-Id: I51cdbbbf00bdf43374c06638a8db4f8e87dbcdf7 --- zh-cn/devices/drm.html | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'zh-cn') diff --git a/zh-cn/devices/drm.html b/zh-cn/devices/drm.html index ba19cc5c..d43655dc 100644 --- a/zh-cn/devices/drm.html +++ b/zh-cn/devices/drm.html @@ -20,42 +20,43 @@ limitations under the License. --> -Android DRM HAL 图标 +安卓 DRM HAL 图标 -

本文档概要介绍了 Android DRM 框架,并介绍了 DRM 插件必须实现的接口。本文档不提供可由 DRM 方案定义的稳健性规则或合规性规则的相关说明。

+

本文档概要介绍了安卓数字版权管理 (DRM) 框架,并介绍了 DRM 插件必须实现的接口。本文档不提供可由 DRM 方案定义的稳健性规则或合规性规则的相关说明。

简介

-

Android 平台提供了一个可扩展的 DRM 框架,以便应用根据与受版权保护的内容相关的许可限制条件来管理这些内容。DRM 框架支持多种 DRM 方案;设备具体支持哪些 DRM 方案由设备制造商决定。Android 3.0 中引入的 DRM 框架为应用开发者提供了一个统一接口,并隐藏了 DRM 操作的复杂性。DRM 框架为受保护和不受保护的内容提供了一致的操作模式。DRM 方案可以定义非常复杂的许可元数据使用模型。DRM 框架提供了 DRM 内容与许可之间的关联,并处理权限管理。这样可以将媒体播放器从受 DRM 保护或不受保护的内容中提取出来。请参阅 MediaDrm,了解如何使用该类来获取用于解密受保护的媒体流的密钥。

+

安卓平台提供了一个可扩展的 DRM 框架,以便应用根据与受版权保护的内容关联的许可限制条件来管理这些内容。DRM 框架支持多种 DRM 方案;设备具体支持哪些 DRM 方案由设备制造商决定。安卓 3.0 中引入的 DRM 框架为应用开发者提供了一个统一接口,并隐藏了 DRM 操作的复杂性。DRM 框架为受保护和不受保护的内容提供了一致的操作模式。DRM 方案可以定义非常复杂的许可元数据使用模型。DRM 框架提供了 DRM 内容与许可之间的关联,并处理权限管理。这样可以将媒体播放器从受 DRM 保护或不受保护的内容中提取出来。请参阅 MediaDrm,了解如何使用该类来获取用于解密受保护的媒体流的密钥。

- Android DRM HAL + 安卓 DRM HAL

图 1. DRM 硬件抽象层

-

提供丰富数字内容的能力对于移动设备用户来说非常重要。为保证内容的广泛覆盖面,Android 开发者和数字内容发布者需要在整个 Android 生态系统中实现受支持的一致的 DRM。为了使此类数字内容适用于 Android 设备并确保至少有一个一致的 DRM 可用于所有设备,Google 在 Android 兼容设备上提供了无需支付许可费用的 DRM。在 Android 3.0 及更高版本的平台上,DRM 插件与 Android DRM 框架集成在一起,并且可以使用由硬件支持的保护功能来保护付费内容和用户凭据。 +

提供丰富数字内容的能力对于移动设备用户来说非常重要。为保证内容的广泛覆盖面,安卓开发者和数字内容发布者需要在整个安卓生态系统中支持一致的 DRM 实现。为了让这类数字内容适用于安卓设备,并确保至少有一个一致的 DRM 可用于所有设备,Google 会在兼容的安卓设备上提供无需支付许可费用的 DRM。在安卓 3.0 及更高版本的平台上,DRM 插件会与安卓 DRM 框架集成在一起,并可使用受硬件支持的保护功能来确保付费内容和用户凭据的安全。

-

DRM 插件提供的内容保护取决于底层硬件平台的安全性和内容保护功能。设备的硬件功能包括硬件安全启动,可建立加密密钥的安全性和保护的信任链。设备的内容保护功能包括设备内加密帧的保护和通过可信输出保护机制实现的内容保护。并非任意硬件平台都支持上述所有的安全性和内容保护功能。安全性绝不会在堆栈的单个位置实现,而是依赖于硬件、软件和服务的集成。将硬件安全性功能、可信启动机制以及用于处理安全性功能的隔离安全操作系统组合使用是交付安全设备的关键。

+

+DRM 插件提供的内容保护功能取决于底层硬件平台的安全性和内容保护功能。设备的硬件功能包括硬件安全启动,可建立加密密钥的安全性和保护的信任链。设备的内容保护功能包括设备内加密帧的保护和通过可信输出保护机制实现的内容保护。并非任意硬件平台都支持上述所有的安全性和内容保护功能。安全性绝不会在堆栈的单个位置实现,而是依赖于硬件、软件和服务的集成。将硬件安全性功能、可信启动机制以及用于处理安全性功能的隔离安全操作系统组合使用是交付安全设备的关键。

架构

DRM 框架与实现无关,可在方案特定的 DRM 插件中提取特定 DRM 方案实现的详情。DRM 框架包括可执行以下操作的简单 API:处理复杂的 DRM 操作、向在线 DRM 服务注册用户和设备、从许可中提取限制信息、将 DRM 内容与其许可相关联,以及最终解密 DRM 内容。

-

Android DRM 框架在以下两个架构层中实现:

+

安卓 DRM 框架在以下两个架构层中实现:

    -
  • DRM framework API:通过 Android 应用框架提供给应用,并通过适用于标准应用的 Dalvik VM 运行。
  • +
  • DRM framework API:通过安卓应用框架提供给应用,并通过适用于标准应用的 Dalvik VM 运行。
  • 本机代码 DRM 管理器:用于实现 DRM 框架,并为 DRM 插件(代理)提供接口,以便处理各种 DRM 方案的版权管理和解密操作。
- Android DRM 框架 + 安卓 DRM 框架

图 2. DRM 框架

-

有关详情,请参阅 Android DRM 文件包参考

+

有关详情,请参阅安卓 DRM 文件包参考

插件

如下图所示,DRM 框架使用插件架构来支持各种 DRM 方案。DRM 管理器服务在一个独立进程中运行,以确保隔离执行 DRM 插件。从 DrmManagerClient 到 DrmManagerService 的每个 API 调用都需要使用 binder IPC 机制来跨越进程边界。DrmManagerClient 提供了 Java 编程语言实现,作为运行时应用的通用接口;此外,它还提供了 DrmManagerClient 本机实现作为本机模块的接口。DRM 框架的调用者仅访问 DrmManagerClient,无需了解每个 DRM 方案。

- Android DRM 插件 + 安卓 DRM 插件

图 3. 带有插件的 DRM 框架

@@ -64,7 +65,7 @@ /system/lib/drm/plugins/native/ -Android DRM 插件生命周期 +安卓 DRM 插件生命周期

图 4. DRM 插件生命周期

@@ -90,7 +91,7 @@ DrmInfo* acquireDrmInfo(int uniqueId, const DrmInfoRequest* drmInfoRequest);
 DrmInfoStatus* processDrmInfo(int uniqueId, const DrmInfo* drmInfo);
 
-

processDrmInfo() 以异步方式运行,事务的结果可通过 OnEventListener 或 OnErrorListener 检索。

+

processDrmInfo() 会以异步方式运行,事务的结果可通过 OnEventListener 或 OnErrorListener 检索。

DRM 权限

@@ -109,7 +110,7 @@ status_t saveRights(int uniqueId, const DrmRights& drmRights, const String8&

将 DRM 权限保存到指定的权限路径并与内容路径相关联。输入参数是要保存的 DrmRights、权限要保存到的权限文件路径,以及已保存内容所在的内容文件路径。

许可元数据

-

许可元数据(如许可到期时间、可重复计数等)可嵌入受保护内容的权限内。Android DRM 框架提供了 API 来返回与输入内容相关联的限制条件。请参阅 DrmManagerClient 了解更多信息。

+

许可元数据(如许可到期时间、可重复计数等)可嵌入受保护内容的权限内。安卓 DRM 框架提供了 API 来返回与输入内容相关联的限制条件。请参阅 DrmManagerClient 了解更多信息。

 DrmConstraints* getConstraints(int uniqueId, const String path, int
@@ -117,7 +118,7 @@ action);
 

getConstraint 函数调用可返回受保护内容中嵌入的限制条件的键值对。要检索这些限制条件,则需要 uniqueId(受保护内容的会话和路径的唯一标识符)。此外,还需要执行被定义为 Action::DEFAULT、Action::PLAY 等的操作。

- Android DRM 许可元数据 + 安卓 DRM 许可元数据

图 5. 检索许可元数据

@@ -147,7 +148,7 @@ status_t openDecryptSession(

源代码

-

Android DRM 框架包括几个示例、一个 passthru 插件和一个转发锁定插件,它们的位置如下:

+

安卓 DRM 框架包括几个示例、一个 passthru 插件和一个转发锁定插件,它们的位置如下:

 PLATFORM_ROOT/frameworks/av/drm/libdrmframework/plugins/passthru
 PLATFORM_ROOT/frameworks/av/drm/libdrmframework/plugins/forward-lock
-- 
cgit v1.2.3