Einführung
Open Mobile API (OMAPI) ist eine Standard-API für die Kommunikation mit dem Secure Element. Vor Android 13 hatten nur Anwendungen und Framework-Module Zugriff auf diese Oberfläche. Durch die Umwandlung in eine anbieterstabile Oberfläche HAL-Module können auch mit den sicheren Elementen kommunizieren. über den OMAPI-Dienst.
Ein neuer Zugriffseintrag für OMAPI wurde für die HAL-Module ohne APIs in der aktuellen Schnittstelle ändern Es sind keine Änderungen an vorhandenen Anwendungs- und Framework-Modulen über diese Benutzeroberfläche.
Im Rahmen des Android Ready SE-Programms entwickeln wir wichtige Android-Sicherheitsfunktionen wie Keymaster, Keymint, Identitätsanmeldedaten und Remote-Schlüsselbereitstellung auf Secure verfügbar Elemente. Für die Aktivierung sind HALs (Anbieterkomponenten) dieser Funktionen für die Kommunikation mit Secure Element über den OMAPI-Anbieter eine stabile Oberfläche.
Designarchitektur
<ph type="x-smartling-placeholder">OEMs integrieren ein Secure Element und Android Ready SE-Funktionen muss diese Schnittstelle aktiviert sein, da sie standardmäßig deaktiviert ist. Vor diesem Update wurden die Secure Element-Zugriffsregeln durch Paket definiert Name oder seine Signatur-Hashes (Referenz der Geräteanwendung) und AID (SE-Anwendungsreferenz). HAL-Module hatten keine eindeutigen IDs wie Paketnamen oder Signaturzertifikate. In Android 13 bietet die OMAPI Der Vendor Stable Service ermöglicht HAL-Modulen den Zugriff auf Secure Element. SE-Anbieter können eine eindeutige ID-UUID von 16 Byte definieren. Um diese Zugriffsregel auf HAL-Module anzuwenden, müssen SE-Anbieter eine diese eindeutige 16-Byte-UUID zur HAL-Modul-UID bei ihrem Anbieter Konfigurations-XML für UUID-Zuordnung.
Der OMAPI-Anbieter Stable Service füllt die UUID bei Bedarf mit FF auf auf 20 Byte gemäß Abschnitt 6.1 Seite „DeviceAppID-REF-DO: 66“ und definiert Zugriffsregeln in sicheren Elemente, die diese 20-Byte-UUID als Geräteanwendungsreferenz verwenden.
Der Name der Anbieter-UUID-Zuordnungsdatei hat das vordefinierte Präfix
hal_uuid_map_
und angehängt an den Wert des Systems
Property ro.boot.product.hardware.sku
hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml
Der stabile OMAPI-Anbieterdienst sucht diese Datei unter
/odm/etc/
, /vendor/etc/
und /etc/
Ordner. Detaillierte Beschreibung der Konfiguration der Anbieter-UUID-Zuordnung
Datei ist verfügbar
hier.
Implementierung
Die folgenden Änderungen sind erforderlich, um die stabile OMAPI-Anbieterversion zu aktivieren Dienstfeature in einem Ziel-Build.
SecureElement
SecureElement
Aktivieren Sie das Dienst-Flag.
secure_element_vintf_enabled
mit Ressourcen-Overlay unter
gerätespezifische Ordner.
<bool name="secure_element_vintf_enabled">true</bool>
Definieren Sie die XML-Datei für die UID- und UUID-Zuordnung für Ihren Dienst.
<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>
Stellen Sie die Secure Element-ARs für den HAL-Dienst mit UUIDs als Geräteanwendungen. Fügen Sie der Zuordnung einen Zuordnungseintrag hinzu. -Konfiguration, in der Sie diese UUID den HAL-Modul-UIDs zuordnen können. Damit Zuordnungsanbietern erlauben HAL-Modulen den Zugriff auf Secure Element. OMAPI-VTS-Tests kann als Referenzimplementierungen zum Aktivieren des OMAPI-Anbieters Stabiler Dienst in HAL-Modulen.
HAL-Modulsepolicy aktualisieren: sepolicy-Regel für das HAL-Modul zum Zulassen hinzufügen um auf den stabilen Dienst des OMAPI-Anbieters zuzugreifen.
allow hal_module_label secure_element_service:service_manager find
Verbindung zum stabilen Dienst des OMAPI-Anbieters herstellen: Über HAL-Module den OMAPI-Anbieter verwenden
Dienstlabel
android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default
eine Verbindung zum Dienst herstellen.
Zertifizierungsstufe
Prüfen, ob der stabile OMAPI-Dienst für Anbieter erfolgreich abgeschlossen wurde ausgeführt haben, indem Sie OMAPI-VTS-Tests
run vts -m VtsHalOmapiSeServiceV1_TargetTest run vts -m VtsHalOmapiSeAccessControlTestCases