Remote Key Provisioning (RKP) เป็นส่วนหนึ่งของ AOSP ตั้งแต่ Android 12 โดย Android 14 นำเสนอโมดูลที่อัปเดตได้สำหรับการจัดเตรียมระยะไกล ซึ่งเพิ่มความยืดหยุ่นของฟีเจอร์โดยการปรับปรุงความทนทานของ API บริการ และลดเวลาในการแนะนำการปรับปรุงใดๆ
แรงจูงใจ
ลดความซับซ้อนของบริการ RKP ด้วยการบรรจุทุกอย่างลงใน APEX
ก่อน Android 14 RKP ถูกแยกออกเป็นแอป RemoteProvisioner
และ Keystore 2.0 แอป RemoteProvisioner
รับผิดชอบในการติดต่อแบ็กเอนด์ RKP และ Keystore 2.0 รับผิดชอบทั้งการจัดเก็บคีย์และการสื่อสารกับ HAL นี่ไม่ใช่สถาปัตยกรรมที่ดีเพราะคีย์ RKP แตกต่างอย่างมากจากคีย์ Store ในแง่ของเมตาดาต้าที่แนบมา นอกจากนี้ จำเป็นต้องมีการปรับเปลี่ยนโค้ดกรอบงาน Keystore ที่น่าอึดอัดใจเพื่อแจ้งเตือน RemoteProvisioner
เกี่ยวกับความอดอยากของทรัพยากรที่อาจเกิดขึ้น
RKP ซึ่งเป็นโมดูลหลักได้รับการออกแบบมาเพื่อปรับปรุงจุดเหล่านี้โดยการบรรจุทุกอย่างลงใน APEX อย่างเรียบร้อย
ขอบเขตโมดูล
RKP Mainline APEX, com.android.rkpd
มีแอปพลิเคชัน Remote Key Provisioning Daemon (RKPD) และส่วนประกอบเซิร์ฟเวอร์ระบบการจัดเตรียมระยะไกล (สร้างด้วย Java)
สถาปัตยกรรมสแต็ก
รูปที่ 1 แสดงให้เห็นสถาปัตยกรรมสแต็ก RKP
รูปที่ 1. สถาปัตยกรรมสแต็ก RKP
สถาปัตยกรรมภายใน
รูปที่ 2 แสดงให้เห็นสถาปัตยกรรมภายใน RKP
รูปที่ 2 สถาปัตยกรรมภายใน RKP
ข้อมูลเพิ่มเติมเกี่ยวกับสถาปัตยกรรมภายใน RKP:
RKPD เมนไลน์ APEX -
com.android.rkpd
- แอป RKPD (ชวา)
-
packages/modules/RemoteKeyProvisioning/app
-
- แฟรกเมนต์เซิร์ฟเวอร์ระบบ RKPD (Java)
-
packages/modules/RemoteKeyProvisioning/system-server
-
- แอป RKPD (ชวา)
อินเทอร์เฟซ/การใช้งาน HAL (สนิม/C++)
-
IRemotelyProvisionedComponent
-
hardware/interfaces/security/keymint
-
-
รูปแบบแพ็คเกจ
แอปพลิเคชันและฟังก์ชันอื่นๆ ของโมดูลได้รับการบรรจุเป็นไฟล์ APEX com.android.rkpd
การพึ่งพาอาศัยกัน
โมดูล RKP ยังคงขึ้นอยู่กับการมีอยู่ของการใช้งาน IRemotelyProvisionedComponent
เพื่อจัดเตรียมคีย์การรับรองและการร้องขอใบรับรอง
กลยุทธ์การทดสอบ
แอปพลิเคชัน APEX เวอร์ชัน AOSP มีการทดสอบหน่วยที่ OEM สามารถทำงานได้