ตั้งแต่วันที่ 27 มีนาคม 2025 เป็นต้นไป เราขอแนะนำให้ใช้ android-latest-release
แทน aosp-main
เพื่อสร้างและมีส่วนร่วมใน AOSP โปรดดูข้อมูลเพิ่มเติมที่หัวข้อการเปลี่ยนแปลงใน AOSP
การจัดสรรคีย์จากระยะไกล
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
การจัดสรรคีย์จากระยะไกล (RKP) เป็นส่วนหนึ่งของ AOSP ตั้งแต่ Android 12 Android 14 เปิดตัวโมดูลการจัดสรรจากระยะไกลที่อัปเดตได้ ซึ่งจะเพิ่มความยืดหยุ่นของฟีเจอร์ด้วยการพัฒนาความเสถียรของ Service API และลดเวลาในการเปิดตัวการปรับปรุง
แรงจูงใจ
ลดความซับซ้อนของบริการ RKP ด้วยการรวมทุกอย่างไว้ใน APEX
ก่อน Android 14 ระบบได้แยก RKP ออกเป็นแอป
RemoteProvisioner
และ Keystore 2.0 แอป RemoteProvisioner
มีหน้าที่รับผิดชอบในการติดต่อแบ็กเอนด์ RKP และ Keystore 2.0 มีหน้าที่รับผิดชอบทั้งการจัดเก็บคีย์และการสื่อสารกับ HAL สถาปัตยกรรมนี้ไม่ดีเนื่องจากคีย์ RKP แตกต่างจากคีย์ของ Keystore อย่างมากในแง่ของข้อมูลเมตาที่แนบมา นอกจากนี้ การดําเนินการนี้ยังจําเป็นต้องมีการแก้ไขโค้ดเฟรมเวิร์กคีย์สโตร์อย่างยุ่งยากเพื่อแจ้งให้ RemoteProvisioner
ทราบถึงปัญหาการขาดแคลนทรัพยากรที่อาจเกิดขึ้น
RKP เป็นโมดูลหลักที่ออกแบบมาเพื่อปรับปรุงจุดเหล่านี้ด้วยการบรรจุทุกอย่างไว้ใน APEX อย่างเป็นระเบียบ
ขอบเขตของโมดูล
APEX หลักของ RKP com.android.rkpd
มีแอปพลิเคชันรีโมตคีย์การจัดสรร (RKPD) และคอมโพเนนต์เซิร์ฟเวอร์ของระบบการจัดสรรจากระยะไกล (สร้างขึ้นด้วย Java)
สถาปัตยกรรมกอง
รูปที่ 1 แสดงสถาปัตยกรรมสแต็ก RKP
รูปที่ 1 สถาปัตยกรรมสแต็ก RKP
สถาปัตยกรรมภายใน
รูปที่ 2 แสดงสถาปัตยกรรมภายในของ RKP
รูปที่ 2 สถาปัตยกรรมภายในของ RKP
ข้อมูลเพิ่มเติมเกี่ยวกับสถาปัตยกรรมภายในของ RKP
แอปพลิเคชันและฟังก์ชันการทำงานอื่นๆ ของโมดูลจะรวมอยู่ในไฟล์ APEXcom.android.rkpd
ทรัพยากร Dependency
โมดูล RKP จะยังคงอาศัยการติดตั้งใช้งานIRemotelyProvisionedComponent
อยู่ต่อไปเพื่อระบุคีย์การรับรองและคำขอใบรับรอง
กลยุทธ์การทดสอบ
APEX ของแอปพลิเคชันเวอร์ชัน AOSP มี Unit Test ที่ OEM สามารถเรียกใช้ได้
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","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 UTC"],[],[],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."]]