การจัดสรรกุญแจรีโมต

การจัดสรรคีย์จากระยะไกล (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

สถาปัตยกรรมสแต็ก RKP

รูปที่ 1 สถาปัตยกรรมสแต็ก RKP

สถาปัตยกรรมภายใน

รูปที่ 2 แสดงสถาปัตยกรรมภายในของ RKP

สถาปัตยกรรมภายในของ RKP

รูปที่ 2 สถาปัตยกรรมภายในของ RKP

ข้อมูลเพิ่มเติมเกี่ยวกับสถาปัตยกรรมภายในของ RKP

  • APEX ของ RKPD - com.android.rkpd

    • แอป RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/app
    • ข้อมูลโค้ดส่วนย่อยของเซิร์ฟเวอร์ระบบ RKPD (Java)
      • packages/modules/RemoteKeyProvisioning/system-server
  • อินเทอร์เฟซ/การใช้งาน HAL (Rust/C++)

    • IRemotelyProvisionedComponent
      • hardware/interfaces/security/keymint

รูปแบบแพ็กเกจ

แอปพลิเคชันและฟังก์ชันอื่นๆ ของโมดูลมีแพ็กเกจเป็นไฟล์ APEX com.android.rkpd

ทรัพยากร Dependency

โมดูล RKP จะยังคงอาศัยการติดตั้งใช้งานIRemotelyProvisionedComponentอยู่ต่อไปเพื่อระบุคีย์การรับรองและคำขอใบรับรอง

กลยุทธ์การทดสอบ

APEX ของแอปพลิเคชันเวอร์ชัน AOSP มี Unit Test ที่ OEM สามารถเรียกใช้ได้