اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
توفير المفاتيح عن بُعد
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
كانت ميزة "إدارة المفاتيح عن بُعد" (RKP) جزءًا من "مشروع Android المفتوح المصدر" (AOSP) منذ إصدار Android
12. يقدّم نظام التشغيل Android 14 ملفًا برمجيًا قابلاً للتحديث لإعداد الأجهزة عن بُعد، ما يزيد من مرونة الميزات من خلال تحسين كفاءة واجهة برمجة التطبيقات للخدمة وتقليل الوقت اللازم لإجراء أي تحسينات عليها.
الحافز
يمكنك تبسيط خدمة RKP من خلال تجميع كل العناصر في نموذج APEX.
قبل الإصدار 14 من Android، كان يتم تقسيم RKP إلى تطبيق
RemoteProvisioner
وKeystore 2.0. كان تطبيق RemoteProvisioner
مسؤولاً عن التواصل مع الخلفية في RKP، وكان Keystore 2.0 مسؤولاً عن
تخزين المفاتيح والتواصل مع HAL. لم تكن هذه بنية جيدة
لأنّ مفاتيح RKP تختلف اختلافًا كبيرًا عن مفاتيح "متجر المفاتيح" في
ما يتعلّق بالبيانات الوصفية المرفقة. بالإضافة إلى ذلك، تطلب هذا إجراء تعديلات غير ملائمة على
رمز إطار عمل Keystore لتنبيه RemoteProvisioner
بشأن احتمال
نقص الموارد.
تم تصميم RKP كوحدة رئيسية لتحسين هذه النقاط من خلال
تجميع كل العناصر بدقة في APEX.
حدود الوحدة
يحتوي الإصدار الرئيسي من RKP APEX، وهو com.android.rkpd
، على تطبيق Remote Key Provisioning
Daemon (RKPD) ومكوّن خادم نظام الإعداد عن بُعد
(تم إنشاؤه باستخدام Java).
بنية الحزمة
يوضّح الشكل 1 بنية حِزمة RKP.
الشكل 1: بنية حِزمة RKP
التصميم الداخلي
يوضّح الشكل 2 البنية الداخلية لـ RKP.
الشكل 2: البنية الداخلية لخدمة "الإعلانات على شبكة البحث"
معلومات إضافية حول البنية الداخلية لبرنامج "الإعلانات على شبكة البحث":
يتم تجميع التطبيق والوظائف الأخرى للوحدة كملف APEX
com.android.rkpd
.
التبعيات
تستمرّ وحدة RKP في الاعتماد على توفّر تنفيذات
IRemotelyProvisionedComponent
لتوفير مفاتيح الإثبات
وطلبات الشهادة.
استراتيجية الاختبار
يحتوي إصدار AOSP من حزمة APEX على اختبارات وحدات يمكن لجهات التصنيع الأصلية للأجهزة إجراؤها.
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Remote Key Provisioning (RKP) has been a part of AOSP since Android\n12. Android 14 introduces a\nremote provisioning updatable module that increases feature resilience by\nimproving the robustness of the service API and decreasing the time to\nintroduce any improvements to it.\n\nMotivation\n----------\n\nSimplify the RKP service by packaging everything into an APEX.\n\nBefore Android 14, RKP was separated into an app,\n`RemoteProvisioner`, and Keystore 2.0. The `RemoteProvisioner` app was\nresponsible for contacting the RKP backend, and Keystore 2.0 was responsible for\nboth storing the keys and communicating with HALs. This wasn't a good\narchitecture because RKP keys are significantly different from Keystore keys in\nterms of attached metadata. Additionally, this required awkward modifications to\nthe Keystore framework code to alert `RemoteProvisioner` about potential\nresource starvation.\n\nRKP as a Mainline module is designed to improve on these points by neatly\npacking everything into an APEX.\n\nModule boundary\n---------------\n\nThe RKP Mainline APEX, `com.android.rkpd`, contains the Remote Key Provisioning\nDaemon (RKPD) application and a remote provisioning system server component\n(built with Java).\n\n### Stack architecture\n\nFigure 1 illustrates the RKP stack architecture.\n\n**Figure 1.** RKP stack architecture.\n\n### Internal architecture\n\nFigure 2 illustrates the RKP internal architecture.\n\n**Figure 2.** RKP internal architecture.\n\nAdditional information about the RKP internal architecture:\n\n- RKPD Mainline APEX - `com.android.rkpd`\n\n - RKPD app (Java)\n - `packages/modules/RemoteKeyProvisioning/app`\n - RKPD system server fragment (Java)\n - `packages/modules/RemoteKeyProvisioning/system-server`\n- HAL interface/implementation (Rust/C++)\n\n - `IRemotelyProvisionedComponent`\n - `hardware/interfaces/security/keymint`\n\nPackage format\n--------------\n\nThe application and other functionalities of the module are packaged as APEX\nfile `com.android.rkpd`.\n\nDependencies\n------------\n\nThe RKP module continues to depend on the existence of\n`IRemotelyProvisionedComponent` implementations to provide the attestation keys\nand certificate requests.\n\nTesting strategy\n----------------\n\nThe AOSP version of the application APEX contains unit tests that OEMs can run."]]