Interfaccia stabile del fornitore OMAPI

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

Architettura di progettazione
Figura 1: 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