كانت ميزة "إدارة المفاتيح عن بُعد" (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 بدقة.
حدود الوحدة
يحتوي الإصدار الرئيسي من APEX لبروتوكول إدارة مفاتيح الربط عن بُعد، com.android.rkpd
، على تطبيق "الخادم العميق لإدارة مفاتيح الربط عن بُعد" (RKPD) ومكوّن خادم نظام إدارة الربط عن بُعد (تم إنشاؤه باستخدام Java).
بنية الحزمة
يوضّح الشكل 1 بنية حِزمة RKP.
الشكل 1: بنية حِزمة RKP
التصميم الداخلي
يوضّح الشكل 2 البنية الداخلية لـ RKP.
الشكل 2: البنية الداخلية لخدمة "الإعلانات على شبكة البحث"
معلومات إضافية حول البنية الداخلية لبرنامج "الإعلانات على شبكة البحث":
RKPD Mainline APEX -
com.android.rkpd
- تطبيق RKPD (Java)
packages/modules/RemoteKeyProvisioning/app
- مقتطف خادم نظام RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- تطبيق RKPD (Java)
واجهة HAL/تنفيذها (Rust/C++)
IRemotelyProvisionedComponent
hardware/interfaces/security/keymint
تنسيق الحزمة
يتم تجميع التطبيق والوظائف الأخرى للوحدة كملف APEX
com.android.rkpd
.
التبعيات
تستمرّ وحدة RKP في الاعتماد على توفّر تنفيذات
IRemotelyProvisionedComponent
لتوفير مفاتيح الإثبات
وطلبات الشهادة.
استراتيجية الاختبار
يحتوي إصدار AOSP من حزمة APEX على اختبارات وحدات يمكن لجهات التصنيع الأصلية للأجهزة إجراؤها.