การจัดสรรคีย์จากระยะไกล (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
RKPD Mainline APEX -
com.android.rkpd
- แอป RKPD (Java)
packages/modules/RemoteKeyProvisioning/app
- ข้อมูลโค้ดส่วนย่อยของเซิร์ฟเวอร์ระบบ RKPD (Java)
packages/modules/RemoteKeyProvisioning/system-server
- แอป RKPD (Java)
HAL interface/implementation (Rust/C++)
IRemotelyProvisionedComponent
hardware/interfaces/security/keymint
รูปแบบแพ็กเกจ
แอปพลิเคชันและฟังก์ชันอื่นๆ ของโมดูลจะรวมอยู่ในไฟล์ APEX com.android.rkpd
ทรัพยากร Dependency
โมดูล RKP จะยังคงอาศัยการติดตั้งใช้งานIRemotelyProvisionedComponent
อยู่ต่อไปเพื่อระบุคีย์การรับรองและคำขอใบรับรอง
กลยุทธ์การทดสอบ
APEX ของแอปพลิเคชันเวอร์ชัน AOSP มี Unit Test ที่ OEM สามารถเรียกใช้ได้