소개
OMAPI( Open Mobile API )는 장치의 보안 요소와 통신하는 데 사용되는 표준 API입니다. Android 13 이전에는 애플리케이션과 프레임워크 모듈만 이 인터페이스에 액세스할 수 있었습니다. HAL 모듈은 이를 공급업체의 안정적인 인터페이스로 변환하여 OMAPI 서비스를 통해 보안 요소와 통신할 수도 있습니다.
현재 기존 인터페이스의 API를 수정하지 않고 HAL 모듈에 대해 OMAPI에 대한 새 액세스 항목이 추가되었습니다. 이 인터페이스를 사용하는 기존 애플리케이션 및 프레임워크 모듈에는 수정이 필요하지 않습니다.
Android Ready SE 프로그램 의 일환으로 Keymaster, Keymint, Identity Credentials 및 Remote Key Provisioning과 같은 핵심 Android 보안 기능을 Secure Elements에서 사용할 수 있도록 하고 있습니다. 이를 활성화하려면 이러한 기능의 HAL(공급업체 구성 요소)이 OMAPI 공급업체 안정 인터페이스를 통해 보안 요소와 통신해야 합니다.
디자인 아키텍처

Secure Element 및 Android Ready SE 기능을 장치에 통합하는 OEM은 이 인터페이스가 기본적으로 비활성화되어 있으므로 활성화해야 합니다. 이 업데이트 이전에 보안 요소 액세스 규칙은 패키지 이름 또는 해당 서명 해시(장치 응용 프로그램 참조) 및 AID(SE 응용 프로그램 참조)로 정의되었습니다. HAL 모듈에는 패키지 이름이나 서명 인증서와 같은 고유 식별자가 없습니다. 이제 Android 13에서 OMAPI 공급업체 안정 서비스를 통해 HAL 모듈이 보안 요소에 액세스할 수 있습니다. SE 공급업체는 16바이트의 고유 식별자 UUID를 정의할 수 있습니다. 이 액세스 규칙을 HAL 모듈에 적용하려면 SE 공급업체는 이 16바이트 고유 식별자 UUID를 공급업체 UUID 매핑 구성 XML의 HAL 모듈 UID에 매핑해야 합니다.
OMAPI 공급업체 안정 서비스는 섹션 6.1, DeviceAppID-REF-DO 페이지: 66에 따라 필요한 경우 UUID를 FF로 채우고 20바이트로 만들고 이 20바이트 UUID를 장치 애플리케이션 참조로 사용하여 보안 요소의 액세스 규칙을 정의합니다.
공급업체 UUID 매핑 파일 이름은 사전 정의된 접두사 hal_uuid_map_
으로 구성되고 시스템 속성 ro.boot.product.hardware.sku
의 값이 추가됩니다.
hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml
OMAPI 공급업체 안정 서비스는 /odm/etc/
, /vendor/etc/
및 /etc/
폴더에서 이 파일을 검색합니다. 공급업체 UUID 매핑 구성 파일에 대한 자세한 설명은 여기에서 볼 수 있습니다.
구현
대상 빌드에서 OMAPI 공급업체 안정 서비스 기능을 활성화하려면 다음 변경 사항이 필요합니다.
보안요소
보안요소 장치별 폴더에서 리소스 오버레이를 사용하여 서비스 플래그 secure_element_vintf_enabled
를 활성화합니다.
<bool name="secure_element_vintf_enabled">true</bool>
서비스에 대한 UID 및 UUID 매핑 xml을 정의합니다.
<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>
장치 애플리케이션 참조로 UUID를 사용하여 HAL 서비스에 대한 보안 요소 AR을 프로비저닝하십시오. 이 UUID를 HAL 모듈 UID에 매핑할 수 있는 매핑 구성에 매핑 항목을 추가합니다. 이 매핑을 통해 공급업체는 HAL 모듈이 보안 요소에 액세스할 수 있도록 허용합니다. OMAPI VTS 테스트 는 HAL 모듈에서 OMAPI 공급업체 안정 서비스를 활성화하기 위한 참조 구현으로 사용할 수 있습니다.
HAL 모듈 sepolicy 업데이트: HAL 모듈에 대한 sepolicy 규칙을 추가하여 해당 도메인이 OMAPI 공급업체 안정 서비스에 액세스할 수 있도록 합니다.
allow hal_module_label secure_element_service:service_manager find
OMAPI 공급업체 안정적인 서비스에 연결: HAL 모듈에서 OMAPI 공급업체 서비스 레이블 android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default
를 사용하여 서비스에 연결합니다.
확인
OMAPI VTS 테스트 를 실행하여 OMAPI 공급업체 안정 서비스가 성공적으로 구현되었는지 확인합니다.
run vts -m VtsHalOmapiSeServiceV1_TargetTest run vts -m VtsHalOmapiSeAccessControlTestCases