تأمین کلید از راه دور (RKP) از اندروید ۱۲ بخشی از AOSP بوده است. اندروید ۱۴ یک ماژول قابل بهروزرسانی تأمین از راه دور را معرفی میکند که با بهبود استحکام API سرویس و کاهش زمان لازم برای معرفی هرگونه بهبود در آن، انعطافپذیری ویژگیها را افزایش میدهد.
انگیزه
سرویس RKP را با بستهبندی همه چیز در یک APEX ساده کنید.
قبل از اندروید ۱۴، RKP به یک برنامه، RemoteProvisioner و Keystore 2.0 تقسیم شده بود. برنامه RemoteProvisioner مسئول تماس با backend RKP بود و Keystore 2.0 مسئول ذخیره کلیدها و ارتباط با HALها بود. این معماری خوبی نبود زیرا کلیدهای RKP از نظر فرادادههای پیوست شده تفاوت قابل توجهی با کلیدهای Keystore دارند. علاوه بر این، این امر مستلزم اصلاحات ناشیانهای در کد چارچوب Keystore بود تا RemoteProvisioner در مورد کمبود احتمالی منابع هشدار دهد.
RKP به عنوان یک ماژول Mainline برای بهبود این نکات با قرار دادن منظم همه چیز در APEX طراحی شده است.
مرز ماژول
RKP Mainline APEX، com.android.rkpd ، شامل برنامه Remote Key Provisioning Daemon (RKPD) و یک کامپوننت سرور سیستم Remote Provisioning (ساخته شده با جاوا) است.
معماری پشته
شکل ۱ معماری پشته RKP را نشان میدهد.

شکل ۱. معماری پشته RKP.
معماری داخلی
شکل ۲ معماری داخلی RKP را نشان میدهد.

شکل ۲. معماری داخلی 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 شامل تستهای واحدی است که تولیدکنندگان اصلی تجهیزات (OEM) میتوانند اجرا کنند.