ข้อมูลเบื้องต้น
เปิด Mobile API (OMAPI) คือ API มาตรฐานที่ใช้ในการสื่อสารกับเครื่องมือรักษาความปลอดภัย องค์ประกอบ ก่อน Android 13 มีเพียงแอปพลิเคชันและโมดูลเฟรมเวิร์กเท่านั้นที่มี เข้าถึงอินเทอร์เฟซนี้ การแปลงไปเป็นอินเทอร์เฟซที่เสถียรของผู้ให้บริการ โมดูล HAL ยังสามารถสื่อสารกับองค์ประกอบความปลอดภัยได้อีกด้วย ผ่านบริการ OMAPI
มีการเพิ่มรายการเข้าถึง OMAPI ใหม่สำหรับโมดูล HAL ที่ไม่มี แก้ไข API ในอินเทอร์เฟซปัจจุบันที่มีอยู่ ไม่มี การแก้ไขที่จำเป็นสำหรับโมดูลแอปพลิเคชันและโมดูลเฟรมเวิร์กที่มีอยู่ โดยใช้อินเทอร์เฟซนี้
เป็นส่วนหนึ่งของโปรแกรม Android Ready SE เรากำลังสร้างฟีเจอร์ความปลอดภัยหลักของ Android เช่น Keymaster, Keymint ข้อมูลเข้าสู่ระบบข้อมูลประจำตัวและการจัดสรรคีย์ระยะไกลมีให้ใช้งานใน Secure องค์ประกอบ การเปิดใช้ผลิตภัณฑ์เหล่านี้ต้องมี HAL (องค์ประกอบของผู้ให้บริการ) ของ เพื่อสื่อสารกับองค์ประกอบความปลอดภัยผ่านทางผู้ให้บริการ OMAPI ของอินเทอร์เฟซที่เสถียร
สถาปัตยกรรมการออกแบบ
OEM ที่ผสานรวมองค์ประกอบความปลอดภัยและฟีเจอร์ SE ที่รองรับ Android เข้ากับ อุปกรณ์ต้องเปิดใช้อินเทอร์เฟซนี้เนื่องจากมีการปิดใช้โดยค่าเริ่มต้น ก่อนการอัปเดตนี้ กฎการเข้าถึงองค์ประกอบความปลอดภัยได้รับการกำหนดตามแพ็กเกจ ชื่อหรือแฮชลายเซ็น (การอ้างอิงแอปพลิเคชันอุปกรณ์) และ AID (การอ้างอิงแอปพลิเคชัน SE) โมดูล HAL ไม่มีตัวระบุที่ไม่ซ้ำกัน เช่น ชื่อแพ็กเกจหรือใบรับรองลายเซ็น ขณะนี้ใน Android 13 เครื่องมือ OMAPI บริการเสถียรของผู้ให้บริการช่วยให้โมดูล HAL เข้าถึงองค์ประกอบความปลอดภัยได้ ผู้ให้บริการ SE จะกำหนด UUID ของตัวระบุที่ไม่ซ้ำกันได้ 16 ไบต์ หากต้องการใช้กฎการเข้าถึงนี้กับโมดูล HAL ผู้ให้บริการ SE จะต้องแมป UUID ตัวระบุที่ไม่ซ้ำกัน 16 ไบต์นี้ไปยัง UID ของโมดูล HAL ในผู้ให้บริการ XML การกำหนดค่าการแมป UUID
OMAPI Vendor Stable Service จะส่ง UUID ด้วย FF หากจำเป็น ให้เป็น 20 ไบต์ต่อส่วน 6.1 หน้า DeviceAppID-REF-DO: 66 และกำหนดกฎการเข้าถึงแบบปลอดภัย องค์ประกอบที่ใช้ UUID ขนาด 20 ไบต์นี้เป็นการอ้างอิงแอปพลิเคชันของอุปกรณ์
ชื่อไฟล์การแมป UUID ของผู้ให้บริการจะสร้างขึ้นโดยมีคำนำหน้าที่กำหนดไว้ล่วงหน้า
hal_uuid_map_
และต่อท้ายด้วยค่าของระบบ
พร็อพเพอร์ตี้ ro.boot.product.hardware.sku
hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml
บริการ OMAPI Vendor Stable จะค้นหาไฟล์นี้ภายใต้
/odm/etc/
/vendor/etc/
และ/etc/
โฟลเดอร์ คำอธิบายโดยละเอียดเกี่ยวกับการกำหนดค่าการแมป UUID ของผู้ให้บริการ
ไฟล์พร้อมใช้งาน
ที่นี่
การใช้งาน
ต้องทำการเปลี่ยนแปลงต่อไปนี้เพื่อเปิดใช้ OMAPI Vendor Stable ฟีเจอร์บริการในบิลด์เป้าหมาย
องค์ประกอบความปลอดภัย
SecureElement
เปิดใช้แฟล็กบริการ
secure_element_vintf_enabled
โดยใช้การวางซ้อนทรัพยากรใต้
โฟลเดอร์เฉพาะอุปกรณ์
<bool name="secure_element_vintf_enabled">true</bool>
กำหนด XML การแมป UID และ UUID สำหรับบริการของคุณ
<ref_do> <uuid_ref_do> <uids> <uid>0</uid> </uids> <uuid>9f36407ead0639fc966f14dde7970f68</uuid> </uuid_ref_do> <uuid_ref_do> <uids> <uid>1096</uid> <uid>1097</uid> </uids> <uuid>a9b7ba70783b317e9998dc4dd82eb3c5</uuid> </uuid_ref_do> </ref_do>
จัดสรร AR องค์ประกอบความปลอดภัยสำหรับบริการ HAL โดยใช้ UUID เป็น แอปพลิเคชันของอุปกรณ์ เพิ่มรายการการแมปในการแมป กำหนดค่าที่คุณจะแมป UUID นี้กับ UID ของโมดูล HAL ด้วยสิ่งนี้ ผู้ให้บริการการแมปอนุญาตให้โมดูล HAL เข้าถึงองค์ประกอบความปลอดภัย การทดสอบ OMAPI VTS สามารถใช้เป็นการใช้งานข้อมูลอ้างอิงสำหรับการเปิดใช้ผู้ให้บริการ OMAPI บริการที่เสถียรในโมดูล HAL
อัปเดต sepolicy ของโมดูล HAL: เพิ่มกฎ sepolicy สำหรับโมดูล HAL เพื่ออนุญาต เพื่อเข้าถึงบริการแบบเสถียรของผู้ให้บริการ OMAPI ได้
allow hal_module_label secure_element_service:service_manager find
เชื่อมต่อกับบริการที่มีความเสถียรของผู้ให้บริการ OMAPI: จากโมดูล HAL ให้ใช้ผู้ให้บริการ OMAPI
ป้ายกำกับบริการ
android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default
เพื่อเชื่อมต่อกับบริการ
การตรวจสอบความถูกต้อง
ตรวจสอบว่าได้ทำการ OMAPI Vendor Stable Service เรียบร้อยแล้ว ติดตั้งใช้งานโดยการเรียกใช้ การทดสอบ OMAPI VTS
run vts -m VtsHalOmapiSeServiceV1_TargetTest run vts -m VtsHalOmapiSeAccessControlTestCases