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, tedarikçi firmanın kararlı bir arayüzüne 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ülleri için herhangi bir değişiklik yapılması gerekmez.

Android Ready SE programı kapsamında Keymaster, Keymint, Kimlik Kimlik Bilgileri ve Uzaktan Anahtar Hazırlama 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ü üzerinden Güvenli Öğe ile iletişim kurması gerekir.

Tasarım mimarisi

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

Cihazlarına Secure Element ve Android Ready SE özelliklerini entegre eden OEM'lerin, varsayılan olarak devre dışı olduğundan bu arayüzü etkinleştirmesi gerekir. Bu güncellemeden önce Güvenli Öğe erişim kuralları, paket adı veya imza karmaları (cihaz uygulaması referansı) ve AID (SE uygulama referansı) ile tanımlanıyordu. HAL modüllerinde paket adları veya imza sertifikaları gibi benzersiz tanımlayıcılar yoktu. Android 13'te OMAPI Satıcı Sabit Hizmeti, HAL modüllerinin Güvenli Öğe'ye 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çi firmalarının, tedarikçi firma UUID eşleme yapılandırma XML'lerinde bu 16 baytlık benzersiz tanımlayıcı UUID'yi HAL modülü UID ile eşlemeleri gerekir.

OMAPI Tedarikçi Sağlam Hizmeti, 6.1 bölümündeki DeviceAppID-REF-DO sayfası 66 uyarınca UUID'yi 20 bayt yapmak için gerekirse FF ile doldurur ve bu 20 baytlık UUID'yi cihaz uygulaması referansı olarak kullanarak güvenli öğelerdeki erişim kurallarını tanımlar.

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

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

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

Uygulama

Hedef derlemede OMAPI Tedarikçi Sağlam Hizmet özelliğini etkinleştirmek için aşağıdaki değişiklikler gereklidir.

SecureElement

SecureElement

Cihaza özel klasörlerin altındaki kaynak yer paylaşımını kullanarak hizmet işaretini secure_element_vintf_enabled etkinleştirin.

    <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 Öğe AR'lerini hazırlayın. Eşleme yapılandırmasına, bu UUID'yi HAL modülü UID'leriyle eşleyebileceğiniz bir eşleme girişi ekleyin. Bu eşlemeyle birlikte tedarikçiler, HAL modüllerinin Güvenli Öğe'ye erişmesine izin verir. OMAPI VTS testleri, HAL modüllerinde OMAPI Tedarikçi Firma Sabit Hizmeti'ni etkinleştirmek için referans uygulamalar olarak kullanılabilir.

HAL modülü sepolicy'sini güncelleyin: Alan adlarının OMAPI tedarikçi firmanın kararlı hizmetine erişmesine izin vermek için HAL modülü için sepolicy kuralı ekleyin.

    allow hal_module_label secure_element_service:service_manager find

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

Doğrulama

OMAPI VTS testlerini çalıştırarak OMAPI Tedarikçi Sağlam Hizmeti'nin başarıyla uygulandığını doğrulayın.

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases