![رمز HAL لإدارة الحقوق الرقمية لنظام التشغيل Android](https://source.android.com/static/docs/core/media/images/ape_fwk_hal_drm.png?authuser=1&hl=ar)
ويقدم هذا المستند نظرة عامة على إطار عمل إدارة الحقوق الرقمية في Android تعرض واجهات برمجة التطبيقات التي يجب أن ينفذها المكوّن الإضافي لإدارة الحقوق الرقمية. لا يتضمن هذا المستند وصف قواعد المتانة أو قواعد الامتثال التي قد يتم تحديدها بواسطة إدارة الحقوق الرقمية .
إطار العمل
يوفر نظام Android الأساسي إطار عمل DRM قابلاً للتوسع يتيح تدير التطبيقات المحتوى المحمي بموجب الحقوق وفقًا للترخيص القيود المرتبطة بالمحتوى. يتيح إطار عمل إدارة الحقوق الرقمية العديد من إعدادات إدارة الحقوق الرقمية المخططات لمخططات إدارة الحقوق الرقمية التي يتوافقها الجهاز مع الشركة المصنّعة للجهاز. يوفر إطار عمل إدارة الحقوق الرقمية واجهة موحدة لمطوّري التطبيقات لإخفاء تعقيد عمليات إدارة الحقوق الرقمية. يوفر إطار عمل إدارة الحقوق الرقمية (DRM) إطار عمل متسقًا للمحتوى المحمي وغير المحمي. يمكن أن تحدد مخططات إدارة الحقوق الرقمية نماذج استخدام معقدة من خلال البيانات الوصفية للترخيص. يوفر إطار عمل إدارة الحقوق الرقمية ارتباطًا بين محتوى إدارة الحقوق الرقمية والترخيص، ويتولى إدارة الحقوق. يؤدي هذا إلى تمكين استبعاد مشغل الوسائط من المحتوى المحمي بموجب إدارة الحقوق الرقمية أو المحتوى غير المحمي. الاطّلاع على MediaDrm لكي يحصل الصف على مفاتيح فك تشفير مجموعات بث الوسائط المحمية.
![برنامج إدارة الحقوق الرقمية (HAL) لإدارة الحقوق الرقمية لنظام Android](https://source.android.com/static/docs/core/media/images/ape_fwk_drm.png?authuser=1&hl=ar)
![مشاركة HAL لإدارة الحقوق الرقمية لنظام Android](https://source.android.com/static/docs/core/media/images/aidl-ape_fwk_drm_postQ.png?authuser=1&hl=ar)
يُعد توفُّر المحتوى الرقمي الوافي أمرًا مهمًا للمستخدمين الذين يستخدمون الأجهزة الجوّالة. إلى وإتاحة المحتوى الخاص بهم على نطاق واسع، ومطوري Android والمحتوى الرقمي يجب أن يستخدم الناشرون طريقة تنفيذ إدارة الحقوق الرقمية بشكل متّسق على نظام Android المشروع. ولإتاحة ذلك المحتوى الرقمي على أجهزة Android ضمان توفر إدارة الحقوق الرقمية (DRM) واحدة على الأقل عبر جميع الأجهزة، توفر Google إدارة الحقوق الرقمية بدون رسوم ترخيص على أجهزة Android المتوافقة المكون الإضافي لإدارة الحقوق الرقمية مدمج في إطار عمل إدارة الحقوق الرقمية لنظام التشغيل Android ويمكن أن يستخدم حماية مستندة إلى الأجهزة لتأمين المحتوى المميز وبيانات اعتماد المستخدم.
تعتمد حماية المحتوى التي يوفرها المكوّن الإضافي لإدارة الحقوق الرقمية على أمان إمكانات حماية المحتوى في النظام الأساسي للأجهزة الأساسية. تشير رسالة الأشكال البيانية ينبغي أن تتضمن إمكانات معدّات الجهاز تشغيل آمن للأجهزة إنشاء سلسلة من الثقة من خلال الأمان وحماية مفاتيح التشفير. يجب أن تتضمن إمكانات حماية المحتوى في الجهاز حماية الإطارات غير المشفّرة في الجهاز وحماية المحتوى من خلال إخراج موثوق به آلية حماية البيانات. لا تدعم بعض الأنظمة الأساسية للأجهزة كل ما سبق ميزات الأمان وحماية المحتوى. لا يتم تنفيذ الأمان مطلقًا في مكان واحد في المكدس، ولكن بدلاً من ذلك يعتمد على تكامل الأجهزة، والبرامج والخدمات. يؤدي الجمع بين وظائف أمان الأجهزة وآلية تشغيل موثوق بها ونظام تشغيل آمن منعزل للتعامل مع الأمان والوظائف أمرًا بالغ الأهمية لتوفير جهاز آمن.
هندسة معمارية
تم تصميم إطار عمل إدارة الحقوق الرقمية بحيث يتوافق مع عملية التنفيذ استخلاص تفاصيل تنفيذ مخطط إدارة الحقوق الرقمية المحدد في المكوّن الإضافي DRM الخاص بالمخطط. يتضمن إطار عمل إدارة الحقوق الرقمية واجهات برمجة تطبيقات بسيطة يمكن التعامل معها وعمليات إدارة الحقوق الرقمية المعقدة والحصول على التراخيص وتوفير الأجهزة ربط محتوى DRM وترخيصه، وأخيرًا فك تشفير محتوى DRM.
يتم تنفيذ إطار إدارة الحقوق الرقمية لنظام التشغيل Android في طبقتين معماريتين:
- هي واجهة برمجة تطبيقات خاصة بإطار عمل إدارة الحقوق الرقمية (DRM)، والتي يتم عرضها للتطبيقات من خلال نظام التشغيل Android. إطار عمل التطبيق.
- إطار عمل أصلي لإدارة الحقوق الرقمية (DRM) يعرض واجهة للمكونات الإضافية لإدارة الحقوق الرقمية (الوكلاء) إدارة الحقوق وفك تشفيرها في أنظمة إدارة الحقوق الرقمية المختلفة
![إطار عمل إدارة الحقوق الرقمية (DRM) لنظام التشغيل Android](https://source.android.com/static/docs/shared-images/ape_fwk_drm_2.png?authuser=1&hl=ar)
![إطار عمل إدارة الحقوق الرقمية (DRM) لنظام التشغيل Android](https://source.android.com/static/docs/core/media/images/ape_fwk_drm_2_postO.png?authuser=1&hl=ar)
الاطّلاع على Android Media DRM و يمكنك الاطّلاع على تشفير وسائط Android لمعرفة المزيد من التفاصيل.
المكونات الإضافية لإدارة الحقوق الرقمية
عند بدء تشغيل النظام، يفحص إطار عمل إدارة الحقوق الرقمية (DRM) مثيلات/خدمات HAL (الموضّح في ملفات .rc
).
ويتم اكتشاف المكوّنات الإضافية. إنشاء خادم إدارة الحقوق الرقمية للوسائط (mediadrmserver
)
العنصرَين CryptoHal
وDrmHal
.
CryptoHal
وDrmHal
بعد ذلك يتصلان بالمكونات الإضافية التي تتضمن السمة بواسطة المورّد
عمليات تنفيذ محددة.
يجب أن تنفِّذ المكوّنات الإضافية طبقة تجريد الأجهزة (HALs) مجمَّعة. تستخدم طبقة تجريد الأجهزة (HALs) القابلة للدمج لغة تعريف واجهة Android (AIDL)، مما يسمح باستبدال إطار العمل دون الحاجة إلى إعادة إنشاء HALs.
يُنشئ المورّدون أو صنّاع SOC (المكوّنات الإضافية) المكوّنات الإضافية ويتم وضعها في قسم /vendor
على
الجهاز. يجب أن تتوافق جميع الأجهزة التي تعمل بالإصدار 13 من نظام التشغيل Android أو الإصدارات الأحدث مع بروتوكولات HALs مكتوبة.
بلغة AIDL.
التنفيذ
يجب أن يستخدم إصدار أجهزة GMS وAOSP لنظام التشغيل Android 13 واجهة AIDL.
لتنفيذ واجهات برمجة تطبيقات أُطر عمل إدارة الحقوق الرقمية الجديدة من خلال مكوّن إضافي:
- إضافة خدمة المكوّنات الإضافية إلى ملفات إصدار الجهاز
- تعديل بيان الجهاز
- أضِف أذونات SELinux.
- أنشئ ملف
.rc
ضمن/vendor
. - نفِّذ المكون الإضافي.
يتم تحديد واجهات برمجة التطبيقات في كل إصدار من إصدارات IDrmPlugin.aidl
،
ICryptoPlugin.aidl
، IDrmFactory.aidl
،
وICryptoFactory.aidl
aidl/PLATFORM_ROOT/hardware/interfaces/drm/
إضافة خدمة المكوّنات الإضافية إلى ملفات إصدار الجهاز
على سبيل المثال، لإضافة دعم واجهة AIDL،
يجب أن يتضمّن ملف VENDOR DEVICE/device.mk
android.hardware.drm-service.*
حزم:
PRODUCT_PACKAGES += \ android.hardware.drm-service.clearkey \ android.hardware.drm-service.widevine
تعديل بيان الجهاز
يجب أن يتضمّن ملف vendor manifest.xml
للجهاز الإدخالات التالية:
<hal format="aidl"> <name>android.hardware.drm</name> <version>STABLE AIDL VERSION</version> <fqname>ICryptoFactory/clearkey</fqname> <fqname>IDrmFactory/clearkey</fqname> <fqname>ICryptoFactory/widevine</fqname> <fqname>IDrmFactory/widevine</fqname> </hal>
إصدار STABLE AIDL هو رقم إصدار كل إصدار من واجهة برمجة تطبيقات AIDL (مثلاً 1 أو 2). أو بدلاً من ذلك، نقترح استخدام vintf_segments
إضافة أذونات SELinux
- إضافة إلى
VENDOR DEVICE/sepolicy/vendor/file.te
type mediadrm_vendor_data_file, file_type, data_file_type;
- إضافة إلى
VENDOR DEVICE/sepolicy/vendor/file_contexts
/vendor/bin/hw/android\.hardware\.drm-service\.clearkey u:object_r:hal_drm_clearkey_exec:s0
/data/vendor/mediadrm(/.*)? u:object_r:mediadrm_vendor_data_file:s0 - إضافة إلى
device/sepolicy/vendor/hal_drm_clearkey.te
vndbinder_use(hal_drm_clearkey) allow hal_drm_clearkey servicemanager:binder { call transfer }; allow hal_drm_clearkey hal_drm_service:service_manager add; allow hal_drm_clearkey { appdomain -isolated_app }:fd use; get_prop(ramdump, public_vendor_default_prop)
إنشاء ملف RC ضمن /vendor
ويحدِّد ملف .rc
الإجراءات التي يجب اتّخاذها عند تشغيل خدمة.
عرض لغة الإعداد في Android للحصول على التفاصيل.
تنفيذ المكوّن الإضافي
- تنفيذ نقطة الدخول
main()
فيservice.cpp
من المكوّن الإضافي خدمة ما. - تنفيذ
ICryptoPlugin
وIDrmPlugin
ICryptoFactory
، وIDrmFactory
. - نفِّذ واجهات برمجة التطبيقات الجديدة في المكوّن الإضافي.
تفاصيل المكوّن الإضافي لإدارة الحقوق الرقمية
ينفذ موردو المكوّنات الإضافية لإدارة الحقوق الرقمية DrmFactory
وCryptoFactory
المكون الإضافي لإدارة الحقوق الرقمية
مصنع درم
تبحث الفئة DrmHal
عن خدمات وإنشاءات مكونات إدارة الحقوق الرقمية المسجَّلة
المكوّنات الإضافية المقابلة التي تتيح استخدام نظام تشفير مُعيَّن من خلال DrmFactory
الصف.
IDrmمصانع هي نقطة الدخول الرئيسية للتفاعل مع نظام drm الأساسي للمورّد من خلال واجهة برمجة تطبيقات createplin. تُستخدم واجهة برمجة التطبيقات createplin لإنشاء مثيلات IDrmplin.
::ndk::ScopedAStatus getSupportedCryptoSchemes( std::vector<::aidl::android::hardware::drm::Uuid>* _aidl_return);
تعرض getsupportedCryptoSchemes قائمة بمخططات التشفير المتوافقة لمثيل HAL drm في AIDL.
::ndk::ScopedAStatus isCryptoSchemeSupported( const ::aidl::android::hardware::drm::Uuid& in_uuid, const std::string& in_mimeType, ::aidl::android::hardware::drm::SecurityLevel in_securityLevel, bool* _aidl_return);
يحدد ما إذا كان مصنع المكونات الإضافية قادرًا على إنشاء مكونات إضافية لإدارة الحقوق الرقمية متوافقة نظام تشفير مُعين، يتم تحديده بواسطة معرّف فريد عالمي (UUID).
::ndk::ScopedAStatus isContentTypeSupported(const std::string& in_mimeType, bool* _aidl_return);
يحدد ما إذا كان مصنع المكونات الإضافية قادرًا على إنشاء مكونات إضافية لإدارة الحقوق الرقمية متوافقة مع
التنسيق المحدد لحاوية الوسائط الذي يحدده mimeType
.
::ndk::ScopedAStatus createPlugin( const ::aidl::android::hardware::drm::Uuid& in_uuid, const std::string& in_appPackageName, std::shared_ptr<::aidl::android::hardware::drm::IDrmPlugin>* _aidl_return);
تنشئ هذه الدالة مكوّنًا إضافيًا لإدارة الحقوق الرقمية لمخطط التشفير المحدّد من قِبل المعرّف الفريد العالمي (UUID).
كريبتو فاكتوري
تبحث الفئة CryptoHal
عن خدمات وإنشاءات مكونات إدارة الحقوق الرقمية المسجَّلة
المكوّنات الإضافية المقابلة التي تتيح استخدام نظام تشفير مُعيَّن من خلال CryptoFactory
الصف.
::ndk::ScopedAStatus isCryptoSchemeSupported( const ::aidl::android::hardware::drm::Uuid& in_uuid, bool* _aidl_return);
يحدِّد هذا الإعداد ما إذا كان مصنع العملات المشفّرة قادرًا على إنشاء مكوّنات إضافية للتشفير تتيح استخدام مخطط التشفير المحدد، والذي يتم تحديده من خلال المعرّف الفريد العالمي (UUID).
::ndk::ScopedAStatus createPlugin( const ::aidl::android::hardware::drm::Uuid& in_uuid, const std::vector<uint8_t>& in_initData, std::shared_ptr<::aidl::android::hardware::drm::ICryptoPlugin>* _aidl_return);
يحدد ما إذا كان مصنع المكونات الإضافية قادرًا على إنشاء مكونات إضافية للتشفير تتيح مخطط التشفير المحدد، والذي يتم تحديده من خلال المعرّف الفريد العالمي (UUID).
واجهات برمجة التطبيقات للمكوّن الإضافي لإدارة الحقوق الرقمية
تم تحديد واجهات برمجة التطبيقات فيhardware/interfaces/drm/aidl/aidl_api/android.hardware.drm/
VERSION/android/hardware/drm/IDrmPlugin.aidl
. المقابل
يمكن العثور على ملف IDrmPlugin.h
في الخارج/بعد عملية الإنشاء.