لقد كان Remote Key Provisioning (RKP) جزءًا من AOSP منذ Android 12. يقدم Android 14 وحدة قابلة للتحديث للتوفير عن بعد تعمل على زيادة مرونة الميزات من خلال تحسين قوة واجهة برمجة تطبيقات الخدمة وتقليل الوقت اللازم لإدخال أي تحسينات عليها.
تحفيز
قم بتبسيط خدمة RKP عن طريق تجميع كل شيء في APEX.
قبل Android 14، تم فصل RKP إلى تطبيق، RemoteProvisioner
، وKeystore 2.0. كان تطبيق RemoteProvisioner
مسؤولاً عن الاتصال بالواجهة الخلفية لـ RKP، وكان Keystore 2.0 مسؤولاً عن تخزين المفاتيح والتواصل مع HALs. لم تكن هذه بنية جيدة لأن مفاتيح RKP تختلف بشكل كبير عن مفاتيح Keystore من حيث البيانات الوصفية المرفقة. بالإضافة إلى ذلك، تطلب هذا إجراء تعديلات غريبة على كود إطار عمل Keystore لتنبيه RemoteProvisioner
بشأن التجويع المحتمل للموارد.
تم تصميم RKP كوحدة رئيسية لتحسين هذه النقاط من خلال تعبئة كل شيء بدقة في APEX.
حدود الوحدة النمطية
يحتوي RKP Mainline APEX، com.android.rkpd
، على تطبيق Remote Key Provisioning Daemon (RKPD) ومكون خادم نظام التزويد عن بعد (مُصمم باستخدام Java).
بنية المكدس
يوضح الشكل 1 بنية مكدس RKP.
الشكل 1. بنية المكدس RKP.
العمارة الداخلية
يوضح الشكل 2 البنية الداخلية لـ RKP.
الشكل 2. البنية الداخلية RKP.
معلومات إضافية حول البنية الداخلية لـ RKP:
RKPD Mainline APEX -
com.android.rkpd
- تطبيق RKPD (جافا)
-
packages/modules/RemoteKeyProvisioning/app
-
- جزء خادم النظام RKPD (جافا)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- تطبيق RKPD (جافا)
واجهة/تنفيذ HAL (Rust/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
تنسيق الحزمة
يتم تجميع التطبيق والوظائف الأخرى للوحدة كملف APEX com.android.rkpd
.
التبعيات
تستمر وحدة RKP في الاعتماد على وجود تطبيقات IRemotelyProvisionedComponent
لتوفير مفاتيح التصديق وطلبات الشهادات.
استراتيجية الاختبار
يحتوي إصدار AOSP من تطبيق APEX على اختبارات الوحدة التي يمكن لمصنعي المعدات الأصلية تشغيلها.