OMAPI Tedarikçi Kararlı Arayüzü

Giriş

Open Mobile API (OMAPI), bir cihazın Güvenli Öğesi ile iletişim kurmak için kullanılan standart bir API'dir. Android 13'ten önce bu arayüze yalnızca uygulamalar ve çerçeve modülleri erişebiliyordu. HAL modülleri, satıcıya özel kararlı bir arayüze dönüştürülerek OMAPI hizmeti aracılığıyla güvenli öğelerle de iletişim kurabilir.

Mevcut arayüzdeki API'lerde herhangi bir değişiklik yapılmadan HAL modülleri için OMAPI'ye yeni bir erişim girişi eklendi. Bu arayüzü kullanan mevcut uygulama ve çerçeve modüllerinde herhangi bir değişiklik yapılması gerekmez.

Android Ready SE programı kapsamında Keymaster, KeyMint, kimlik bilgileri ve uzaktan anahtar sağlama gibi temel Android güvenlik özelliklerini Secure Elements'te kullanıma sunuyoruz. Bu özelliklerin etkinleştirilmesi için bu özelliklerin HAL'lerinin (sağlayıcı bileşenleri), OMAPI sağlayıcı kararlı arayüzü aracılığıyla Güvenli Öğeyle iletişim kurması gerekir.

Mimari tasarım

Tasarım Mimarisi
1. Şekil: Tasarım Mimarisi

Güvenli öğe ve Android Ready SE özelliklerini cihazlarına entegre eden OEM'lerin, varsayılan olarak devre dışı bırakılmış bu arayüzü etkinleştirmesi gerekir. Bu güncellemeden önce Güvenli Öğeye erişim kuralları paket adı veya imza karmaları (cihaz uygulaması referansı) ve AID (SE uygulaması referansı) ile tanımlanıyordu. HAL modüllerinde paket adları veya imza sertifikaları gibi benzersiz tanımlayıcılar yoktu. Android 13'te OMAPI Vendor Stable Service, HAL modüllerinin Secure Element'e erişmesine olanak tanır. SE tedarikçileri, 16 baytlık benzersiz bir tanımlayıcı UUID tanımlayabilir. Bu erişim kuralını HAL modüllerine uygulamak için SE tedarikçilerinin bu 16 baytlık benzersiz tanımlayıcı UUID'yi tedarikçi UUID eşleme yapılandırma XML'lerinde HAL modülü UID'sine eşlemesi gerekir.

OMAPI Vendor Stable Service, gerekirse UUID'yi FF ile doldurarak 20 bayt yapar. Bu işlem, 6.1, DeviceAppID-REF-DO page: 66 bölümünde belirtildiği şekilde yapılır. Ayrıca, bu 20 baytlık UUID'yi cihaz uygulaması referansı olarak kullanarak güvenli öğelerde erişim kurallarını tanımlar.

Tedarikçi UUID eşleme dosyasının adı, önceden tanımlanmış hal_uuid_map_ önekiyle oluşturulur ve ro.boot.product.hardware.sku sistem özelliğinin değeriyle eklenir.

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

OMAPI Vendor Stable hizmeti, bu dosyayı /odm/etc/, /vendor/etc/ ve /etc/ klasörlerinde arar. Satıcı UUID eşleme yapılandırma dosyasıyla ilgili ayrıntılı açıklamayı burada bulabilirsiniz.

Uygulama

OMAPI Vendor Stable Service özelliğini hedef derlemede etkinleştirmek için aşağıdaki değişiklikler gereklidir.

SecureElement

SecureElement

Cihaza özel klasörlerde kaynak yer paylaşımı kullanarak hizmet işaretini etkinleştirin. secure_element_vintf_enabled

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

Hizmetiniz için UID ve UUID eşleme XML'sini tanımlayın.

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

Cihaz uygulaması referansları olarak UUID'leri kullanarak HAL hizmeti için Güvenli Öğeler AR'lerini sağlama. Bu UUID'yi HAL modülü UID'leriyle eşleyebileceğiniz eşleme yapılandırmasına bir eşleme girişi ekleyin. Bu eşlemeyle, satıcılar HAL modüllerinin Güvenli Unsur'a erişmesine izin veriyor. OMAPI VTS testleri, HAL modüllerinde OMAPI Vendor Stable Service'in etkinleştirilmesi için referans uygulamaları olarak kullanılabilir.

HAL modülü sepolicy'sini güncelleyin: Alanlarının OMAPI satıcı kararlı hizmetine erişmesine izin vermek için HAL modülü sepolicy'sine sepolicy kuralı ekleyin.

    allow hal_module_label secure_element_service:service_manager find

OMAPI satıcısı kararlı hizmetine bağlanma: Hizmete bağlanmak için HAL modüllerinden OMAPI satıcısı hizmet etiketi android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default kullanın.

Doğrulama

OMAPI VTS testlerini çalıştırarak OMAPI Vendor Stable Service'in başarıyla uygulandığını doğrulayın.

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases