Introduzione
Apri l'API Mobile (OMAPI) è un'API standard utilizzata per comunicare con lo spazio di archiviazione Elemento. Prima di Android 13, solo le applicazioni e i moduli di framework avevano a questa interfaccia. Convertendolo in un'interfaccia stabile del fornitore, I moduli HAL sono anche in grado di comunicare con gli elementi sicuri attraverso il servizio OMAPI.
È stata aggiunta una nuova voce di accesso a OMAPI per i moduli HAL senza Modificando le API nell'attuale interfaccia esistente. Non sono presenti modifiche necessarie per i moduli di framework e applicazioni esistenti utilizzando questa interfaccia.
Nell'ambito del programma Android Ready SE stiamo realizzando le principali funzionalità di sicurezza di Android come Keymaster, Keymint, Credenziali di identità e provisioning delle chiavi remote disponibili su Secure Elementi. L'abilitazione richiede HAL (componenti del fornitore) per comunicare con Secure Element tramite il fornitore OMAPI un'interfaccia stabile.
Architettura di progettazione
Gli OEM che integrano le funzionalità Secure Element e Android Ready SE nei loro sui dispositivi deve attivare questa interfaccia perché è disattivata per impostazione predefinita. Prima di questo aggiornamento, le regole di accesso a Secure Element venivano definite dal pacchetto nome o i relativi hash di firma (riferimento dell'applicazione del dispositivo) e AID (Riferimento applicazione SE). I moduli HAL non avevano identificatori univoci come nomi di pacchetti o certificati di firma. Ora in Android 13, l'API OMAPI Il servizio stabile del fornitore consente ai moduli HAL di accedere a Secure Element. I fornitori SE possono definire un UUID univoco di 16 byte. Per applicare questa regola di accesso ai moduli HAL, i fornitori SE devono mappare questo UUID univoco da 16 byte all'UID del modulo HAL nel fornitore XML di configurazione della mappatura UUID.
Se necessario, il servizio stabile del fornitore OMAPI riempie l'UUID con FF per renderlo di 20 byte, come 6,1 Pagina DeviceAppID-REF-DO: 66 e definisce le regole di accesso nell'ambiente che utilizzano questo UUID a 20 byte come riferimento all'applicazione del dispositivo.
Il nome del file di mappatura UUID del fornitore viene formato con il prefisso predefinito
hal_uuid_map_
e aggiunto il valore del sistema
proprietà ro.boot.product.hardware.sku
hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml
Il servizio stabile del fornitore OMAPI cerca questo file in
/odm/etc/
, /vendor/etc/
e /etc/
cartelle. Descrizione dettagliata della configurazione della mappatura dell'UUID del fornitore
il file è disponibile
qui
Implementazione
Per attivare la versione stabile del fornitore OMAPI, sono necessarie le seguenti modifiche Funzionalità di servizio su una build di destinazione.
SecureElement
SecureElement
Abilita il flag di servizio
secure_element_vintf_enabled
utilizzando l'overlay della risorsa in
cartelle specifiche del dispositivo.
<bool name="secure_element_vintf_enabled">true</bool>
Definisci il file XML di mappatura UID e UUID per il tuo servizio.
<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>
Esegui il provisioning degli AR di Secure Element per il servizio HAL utilizzando gli UUID come riferimenti alle applicazioni del dispositivo. Aggiungi una voce di mappatura nella mappatura in cui puoi mappare questo UUID agli UID dei moduli HAL. Con questo i fornitori di servizi di mappatura consentono ai moduli HAL di accedere a Secure Element. Test VTS OMAPI può essere utilizzato come implementazioni di riferimento per abilitare il fornitore OMAPI Servizio stabile nei moduli HAL.
Aggiorna sepolicy modulo HAL: aggiungi una regola sepolicy per il modulo HAL da consentire il proprio dominio per accedere al servizio stabile del fornitore OMAPI.
allow hal_module_label secure_element_service:service_manager find
Connettiti al servizio stabile del fornitore OMAPI: dai moduli HAL, utilizza il fornitore OMAPI
etichetta di servizio
android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default
per la connessione al servizio.
Convalida
Verifica che il servizio stabile del fornitore OMAPI sia stato implementato eseguendo Test VTS OMAPI.
run vts -m VtsHalOmapiSeServiceV1_TargetTest run vts -m VtsHalOmapiSeAccessControlTestCases