การจัดสรรคีย์จากระยะไกล (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
APEX ของ RKPD -
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
ทรัพยากร Dependency
โมดูล RKP จะยังคงอาศัยการติดตั้งใช้งานIRemotelyProvisionedComponent
อยู่ต่อไปเพื่อระบุคีย์การรับรองและคำขอใบรับรอง
กลยุทธ์การทดสอบ
APEX ของแอปพลิเคชันเวอร์ชัน AOSP มี Unit Test ที่ OEM สามารถเรียกใช้ได้