از 27 مارس 2025، توصیه می کنیم از android-latest-release
به جای aosp-main
برای ساختن و کمک به AOSP استفاده کنید. برای اطلاعات بیشتر، به تغییرات AOSP مراجعه کنید.
تامین کلید از راه دور
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
Remote Key Provisioning (RKP) از اندروید 12 بخشی از AOSP بوده است. اندروید 14 یک ماژول قابل به روز رسانی تامین از راه دور را معرفی می کند که با بهبود استحکام API سرویس و کاهش زمان ارائه هرگونه پیشرفت در آن، انعطاف پذیری ویژگی را افزایش می دهد.
انگیزه
با بسته بندی همه چیز در یک APEX، سرویس RKP را ساده کنید.
قبل از Android 14، RKP به یک برنامه، RemoteProvisioner
و Keystore 2.0 تفکیک شده بود. برنامه RemoteProvisioner
مسئول تماس با باطن RKP بود و Keystore 2.0 هم وظیفه ذخیره کلیدها و هم ارتباط با HAL ها را بر عهده داشت. این یک معماری خوب نبود، زیرا کلیدهای RKP از نظر متادیتای پیوست شده تفاوت قابل توجهی با کلیدهای Keystore دارند. علاوه بر این، این نیاز به اصلاحات ناخوشایند در کد چارچوب Keystore داشت تا RemoteProvisioner
در مورد گرسنگی احتمالی منابع آگاه کند.
RKP به عنوان یک ماژول Mainline برای بهبود این نقاط با بسته بندی منظم همه چیز در یک APEX طراحی شده است.
مرز ماژول
RKP Mainline APEX، com.android.rkpd
، شامل برنامه Remote Key Provisioning Daemon (RKPD) و یک جزء سرور سیستم تامین از راه دور (ساخته شده با جاوا) است.
معماری پشته
شکل 1 معماری پشته RKP را نشان می دهد.

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

شکل 2. معماری داخلی RKP.
اطلاعات اضافی در مورد معماری داخلی RKP:
برنامه و سایر قابلیت های ماژول به صورت فایل APEX com.android.rkpd
بسته بندی شده است.
وابستگی ها
ماژول RKP همچنان به وجود پیاده سازی های IRemotelyProvisionedComponent
برای ارائه کلیدهای تصدیق و درخواست های گواهی وابسته است.
استراتژی تست
نسخه AOSP برنامه APEX شامل تست های واحد است که OEM ها می توانند اجرا کنند.
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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."]]