Antarmuka Stabil Vendor OMAPI

Pengantar

Open Mobile API (OMAPI) adalah API standar yang digunakan untuk berkomunikasi dengan Elemen. Sebelum Android 13, hanya aplikasi dan modul framework yang akses ke antarmuka ini. Dengan mengubahnya menjadi antarmuka yang stabil bagi vendor, Modul HAL juga mampu berkomunikasi dengan elemen pengaman melalui layanan OMAPI.

Entri akses baru ke OMAPI telah ditambahkan untuk modul HAL tanpa memodifikasi API apa pun di antarmuka yang ada saat ini. Tidak ada modifikasi yang diperlukan untuk modul framework dan aplikasi yang ada menggunakan antarmuka ini.

Sebagai bagian dari program Android Ready SE kami membuat fitur keamanan inti Android seperti Keymaster, Keymint, Kredensial Identitas, dan Penyediaan Kunci Jarak Jauh tersedia di Secure Elemen. Untuk mengaktifkan fitur ini, diperlukan HAL (komponen vendor) fitur untuk berkomunikasi dengan Elemen Pengaman melalui vendor OMAPI dan antarmuka yang stabil.

Arsitektur desain

Arsitektur Desain
Gambar 1: Arsitektur Desain

OEM yang mengintegrasikan Elemen Pengaman dan fitur Android Ready SE ke dalam perangkat perlu mengaktifkan antarmuka ini karena dinonaktifkan secara {i>default<i}. Sebelum pembaruan ini, aturan akses Elemen Aman ditentukan oleh paket nama atau hash tanda tangannya (referensi aplikasi perangkat) dan AID (Referensi aplikasi SE). Modul HAL tidak memiliki ID unik seperti nama paket atau sertifikat tanda tangan. Kini di Android 13, OMAPI Layanan Stabil Vendor memungkinkan modul HAL mengakses Elemen Pengaman. Vendor SE dapat menentukan UUID ID unik sebesar 16 byte. Untuk menerapkan aturan akses ini ke modul HAL, vendor SE wajib memetakan ID unik 16 byte UUID ke UID modul HAL di vendornya XML konfigurasi pemetaan UUID.

Layanan Stabil Vendor OMAPI menambahkan UUID dengan FF jika diperlukan untuk menjadikannya 20 byte, sesuai dengan 6.1, Halaman DeviceAppID-REF-DO: 66 dan menentukan aturan akses di halaman yang aman yang menggunakan UUID 20 byte ini sebagai referensi aplikasi perangkat.

Nama file pemetaan UUID vendor dibentuk dengan awalan yang telah ditentukan sebelumnya hal_uuid_map_ dan ditambahkan dengan nilai sistem properti ro.boot.product.hardware.sku

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

Layanan Stabil Vendor OMAPI menelusuri file ini di /odm/etc/, /vendor/etc/, dan /etc/ folder. Deskripsi terperinci tentang konfigurasi pemetaan UUID vendor file tersedia di sini.

Implementasi

Perubahan berikut diperlukan untuk mengaktifkan Vendor Stabil OMAPI Fitur layanan pada build target.

Elemen Aman

SecureElement

Aktifkan tanda layanan secure_element_vintf_enabled menggunakan overlay resource di bawah folder khusus perangkat.

    <bool name="secure_element_vintf_enabled">true</bool>

Tentukan XML pemetaan UID dan UUID untuk layanan Anda.

<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>

Menyediakan AR Elemen Aman untuk layanan HAL menggunakan UUID sebagai referensi aplikasi perangkat. Tambahkan entri pemetaan di pemetaan konfigurasi tempat Anda dapat memetakan UUID ini ke UID modul HAL. Dengan ini vendor pemetaan mengizinkan modul HAL untuk mengakses Elemen Pengaman. Pengujian VTS OMAPI dapat digunakan sebagai implementasi referensi untuk mengaktifkan Vendor OMAPI Layanan Stabil di modul HAL.

Mengupdate sepolicy modul HAL: Menambahkan aturan sepolicy untuk modul HAL untuk mengizinkan domain mereka untuk mengakses layanan stabil vendor OMAPI.

    allow hal_module_label secure_element_service:service_manager find

Terhubung ke layanan stabil vendor OMAPI: Dari modul HAL, gunakan vendor OMAPI label layanan android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default untuk terhubung ke layanan.

Validasi

Memvalidasi bahwa Layanan Stabil Vendor OMAPI telah berhasil yang diimplementasikan dengan menjalankan Pengujian VTS OMAPI.

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases