واجهة بائع OMAPI المستقرة

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

مقدمة

Open Mobile API (OMAPI) هي واجهة برمجة تطبيقات قياسية تُستخدم للتواصل مع العنصر الآمن للجهاز. قبل Android 13 ، كان بإمكان التطبيقات ووحدات إطار العمل فقط الوصول إلى هذه الواجهة. من خلال تحويلها إلى واجهة مستقرة للبائع ، فإن وحدات HAL قادرة أيضًا على التواصل مع العناصر الآمنة من خلال خدمة OMAPI.

تمت إضافة إدخال وصول جديد إلى OMAPI للوحدات النمطية HAL دون تعديل أي واجهات برمجة تطبيقات في الواجهة الحالية الحالية. لا توجد تعديلات مطلوبة للوحدات النمطية للتطبيقات وإطار العمل الحالية باستخدام هذه الواجهة.

كجزء من برنامج Android Ready SE ، فإننا نجعل ميزات أمان Android الأساسية مثل Keymaster و Keymint وبيانات اعتماد الهوية وتوفير المفتاح البعيد المتوفرة في Secure Elements. يتطلب تمكين هذه المكونات HAL (مكونات البائع) لهذه الميزات للتواصل مع العنصر الآمن عبر واجهة بائع OMAPI المستقرة.

هندسة التصميم

هندسة التصميم
الشكل 1 : هندسة التصميم

تحتاج الشركات المصنعة للمعدات الأصلية التي تدمج ميزات Secure Element و Android Ready SE في أجهزتها إلى تمكين هذه الواجهة لأنها معطلة افتراضيًا. قبل هذا التحديث ، تم تحديد قواعد الوصول إلى العنصر الآمن من خلال اسم الحزمة أو تجزئات التوقيع الخاصة بها (مرجع تطبيق الجهاز) و AID (مرجع تطبيق SE). لا تحتوي وحدات HAL على معرّفات فريدة مثل أسماء الحزم أو شهادات التوقيع. الآن في Android 13 ، تسمح OMAPI Vendor Stable Service لوحدات HAL بالوصول إلى العنصر الآمن. يمكن لبائعي SE تعريف معرف فريد من نوعه UUID من 16 بايت. لتطبيق قاعدة الوصول هذه على وحدات HAL النمطية ، يتعين على بائعي SE تعيين UUID المعرف الفريد المكون من 16 بايت هذا إلى UID الخاص بوحدة HAL في تهيئة XML لتعيين UUID الخاص بالمورد.

تقوم خدمة OMAPI Vendor Stable Service بتزويد UUID بـ FF إذا لزم الأمر لجعلها 20 بايت ، وفقًا للقسم 6.1 ، صفحة DeviceAppID-REF-DO: 66 وتحدد قواعد الوصول في العناصر الآمنة باستخدام UUID 20 بايت هذا كمرجع لتطبيق الجهاز.

يتكون اسم ملف تعيين UUID الخاص بالمورد من البادئة المحددة مسبقًا hal_uuid_map_ بقيمة خاصية النظام ro.boot.product.hardware.sku

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

تبحث خدمة OMAPI Vendor Stable عن هذا الملف ضمن /odm/etc/ ، /vendor/etc/ و /etc/ مجلدات. يتوفر هنا وصف تفصيلي لملف تكوين تعيين UUID الخاص بالبائع.

تطبيق

التغييرات التالية مطلوبة لتمكين ميزة OMAPI Vendor Stable Service في بنية الهدف.

عنصر آمن

عنصر آمن

قم بتمكين علامة الخدمة 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>

قم بتوفير ARS للعنصر الآمن لخدمة HAL باستخدام UUIDs كمراجع لتطبيق الجهاز. أضف إدخال تعيين في تكوين التعيين حيث يمكنك تعيين UUID هذا إلى UID (معرفات) وحدة HAL. باستخدام هذا التعيين ، يسمح البائعون لوحدات HAL بالوصول إلى العنصر الآمن. يمكن استخدام اختبارات OMAPI VTS كتطبيقات مرجعية لتمكين خدمة OMAPI Vendor Stable Service في وحدات HAL النمطية.

تحديث وحدة نمطية HAL: أضف قاعدة منفصلة لوحدة HAL للسماح لمجالاتهم بالوصول إلى خدمة بائع OMAPI المستقرة.

    allow hal_module_label secure_element_service:service_manager find

الاتصال بخدمة بائع OMAPI المستقرة: من وحدات HAL ، استخدم تسمية خدمة بائع android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default للاتصال بالخدمة.

تصديق

تحقق من أن خدمة OMAPI Vendor Stable Service قد تم تنفيذها بنجاح عن طريق تشغيل اختبارات OMAPI VTS .

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases