Interfejs stabilny dostawcy OMAPI

Wprowadzenie

Otwórz Mobile API (OMAPI) to standardowy interfejs API używany do komunikacji z Żywioł. Przed Androidem 13 tylko aplikacje i moduły platformy miały dostępu do tego interfejsu. Konwersja na stabilny interfejs dostawcy Moduły HAL mogą również komunikować się z bezpiecznymi elementami za pomocą usługi OMAPI.

Dodano nowy wpis dostępu do OMAPI dla modułów HAL bez modyfikowanie dowolnych interfejsów API w obecnym interfejsie. Brak modyfikacje wymagane do istniejących modułów aplikacji i platformy za pomocą tego interfejsu.

W ramach programu Android Ready SE tworzymy podstawowe funkcje zabezpieczeń Androida, takie jak Keymaster, Keymint Dane logowania tożsamości i zdalne udostępnianie kluczy są dostępne w standardzie Secure Elementy. Włączenie tej opcji wymaga interfejsów HAL (komponentów dostawcy) tych funkcje komunikacji z bezpiecznym elementem za pośrednictwem dostawcy OMAPI stabilnego interfejsu użytkownika.

Projektuj architekturę

Architektura projektowania
Rys. 1: Architektura projektowania

OEM integrujący bezpieczny element i funkcje Android Ready SE w swoich rozwiązaniach Urządzenia muszą włączyć ten interfejs, ponieważ jest on domyślnie wyłączony. Przed tą aktualizacją reguły dostępu do bezpiecznego elementu były zdefiniowane przez pakiet nazwa lub jej hasze podpisu (dokumentacja aplikacji na urządzeniu) i AID (Odniesienie do aplikacji SE). Moduły HAL nie miały unikalnych identyfikatorów takich jak nazwy pakietów lub certyfikaty podpisu. W Androidzie 13 OMAPI Stabilna usługa dostawcy umożliwia modułom HAL dostęp do bezpiecznego elementu. Dostawcy SE mogą zdefiniować unikalny identyfikator UUID o długości 16 bajtów. Aby zastosować tę regułę dostępu do modułów HAL, dostawcy SE muszą mapować tego 16-bajtowego unikalnego identyfikatora UUID do UID modułu HAL u dostawcy Plik XML konfiguracji mapowania UUID.

Usługa stabilna dostawcy OMAPI w razie potrzeby uzupełnia identyfikator UUID za pomocą FF aby miał 20 bajtów, 6.1 Strona DeviceAppID-REF-DO: 66 definiuje reguły dostępu w bezpiecznych używając tego 20-bajtowego identyfikatora UUID jako odniesienia do aplikacji na urządzeniu.

Nazwa pliku mapowania UUID dostawcy jest tworzona ze wstępnie zdefiniowanym prefiksem hal_uuid_map_ z dołączoną wartością systemu usługa ro.boot.product.hardware.sku

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

Usługa stabilna dostawcy OMAPI wyszukuje ten plik pod adresem /odm/etc/, /vendor/etc/ i /etc/ foldery. Szczegółowy opis konfiguracji mapowania UUID dostawcy plik jest dostępny tutaj.

Implementacja

Aby włączyć stabilną wersję OMAPI Vendor Stable, musisz wprowadzić te zmiany Funkcja usługi w kompilacji docelowej.

Element bezpieczny

SecureElement

Włącz flagę usługi. secure_element_vintf_enabled korzysta z nakładki zasobów w foldery na urządzeniu.

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

Określ plik XML mapowania UID i UUID dla swojej usługi.

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

Udostępnij identyfikatory AR Bezpiecznego elementu na potrzeby usługi HAL, używając identyfikatorów UUID jako: odwołaniach do aplikacji na urządzeniu. Dodaj wpis mapowania w mapowaniu gdzie możesz zmapować ten identyfikator UUID na identyfikatory UID modułu HAL. W związku z tym Dostawcy mapowania zezwalają modułom HAL na dostęp do bezpiecznego elementu. Testy VTS OMAPI może służyć jako implementacja referencyjna dotycząca włączania dostawcy OMAPI Stabilna usługa w modułach HAL.

Aktualizacja sepolicy modułu HAL: dodaj regułę sepolicy dla modułu HAL, aby umożliwić w celu uzyskania dostępu do stabilnej usługi OMAPI dostawcy OMAPI.

    allow hal_module_label secure_element_service:service_manager find

Łączenie ze stabilną usługą dostawcy OMAPI: z modułów HAL używaj dostawcy OMAPI etykieta usługi android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default , aby połączyć się z usługą.

Weryfikacja

Sprawdź, czy usługa stabilna dostawcy OMAPI została pomyślnie przeprowadzona implementowane przez uruchomienie Testy VTS OMAPI.

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases