OMAPI वेंडर का स्टैबल इंटरफ़ेस

ओपन मोबाइल एपीआई (ओएमएपीआई) एक स्टैंडर्ड एपीआई है. इसका इस्तेमाल, डिवाइस के सुरक्षित एलिमेंट से कम्यूनिकेट करने के लिए किया जाता है. Android 13 से पहले, इस इंटरफ़ेस को सिर्फ़ ऐप्लिकेशन और फ़्रेमवर्क मॉड्यूल ऐक्सेस कर सकते थे. इसे वेंडर स्टेबल इंटरफ़ेस में बदलने के बाद, HAL मॉड्यूल भी सुरक्षित एलिमेंट से कम्यूनिकेट कर सकते हैं ओएमएपीआई सेवा के ज़रिए.

मौजूदा इंटरफ़ेस में किसी भी एपीआई में बदलाव किए बिना, HAL मॉड्यूल के लिए ओएमएपीआई का ऐक्सेस जोड़ा गया है. इस इंटरफ़ेस का इस्तेमाल करने वाले मौजूदा ऐप्लिकेशन और फ़्रेमवर्क मॉड्यूल में कोई बदलाव करने की ज़रूरत नहीं है.

Android Ready SE प्रोग्राम के तहत, हम सुरक्षित एलिमेंट पर Android की सुरक्षा से जुड़ी मुख्य सुविधाएं उपलब्ध करा रहे हैं. जैसे, Keymaster, KeyMint, आइडेंटिटी क्रेडेंशियल, और रिमोट की प्रोविज़निंग. इन सुविधाओं को चालू करने के लिए, ज़रूरी है कि इन सुविधाओं के HAL (वेंडर कॉम्पोनेंट), ओएमएपीआई वेंडर स्टेबल इंटरफ़ेस के ज़रिए सुरक्षित एलिमेंट से कम्यूनिकेट करें.

डिज़ाइन आर्किटेक्चर

डिज़ाइन आर्किटेक्चर

पहली इमेज. डिज़ाइन आर्किटेक्चर.

ओईएम को अपने डिवाइसों में सुरक्षित एलिमेंट और Android Ready SE की सुविधाएं इंटिग्रेट करनी होंगी. इसके लिए, उन्हें इस इंटरफ़ेस को चालू करना होगा, क्योंकि यह डिफ़ॉल्ट रूप से बंद होता है. इस अपडेट से पहले, सुरक्षित एलिमेंट के ऐक्सेस के नियम, पैकेज नाम या उसके सिग्नेचर हैश (डिवाइस ऐप्लिकेशन रेफ़रंस) और एआईडी (एसई ऐप्लिकेशन रेफ़रंस) से तय किए जाते थे. HAL मॉड्यूल के पास पैकेज के नाम या सिग्नेचर सर्टिफ़िकेट जैसे यूनीक आइडेंटिफ़ायर नहीं थे. Android 13 और इसके बाद के वर्शन में, ओएमएपीआई वेंडर स्टेबल सर्विस, HAL मॉड्यूल को सुरक्षित एलिमेंट ऐक्सेस करने की अनुमति देती है. एसई वेंडर, 16 बाइट का यूनीक आइडेंटिफ़ायर यूयूआईडी तय कर सकते हैं. HAL मॉड्यूल पर इस ऐक्सेस के नियम को लागू करने के लिए, एसई वेंडर को अपने वेंडर यूयूआईडी मैपिंग कॉन्फ़िगरेशन एक्सएमएल में, इस 16 बाइट के यूनीक आइडेंटिफ़ायर यूयूआईडी को HAL मॉड्यूल यूआईडी से मैप करना होगा.

डिवाइसऐपआईडी-आरईएफ़-डीओ पेज: 66 के सेक्शन 6.1,के मुताबिक, ओएमएपीआई वेंडर स्टेबल सर्विस, यूयूआईडी को 20 बाइट का बनाने के लिए, ज़रूरत पड़ने पर उसमें FF जोड़ती है. साथ ही, डिवाइस ऐप्लिकेशन रेफ़रंस के तौर पर इस 20 बाइट के यूयूआईडी का इस्तेमाल करके, सुरक्षित एलिमेंट में ऐक्सेस के नियम तय करती है.

वेंडर यूयूआईडी मैपिंग फ़ाइल का नाम, पहले से तय किए गए प्रीफ़िक्स hal_uuid_map_ से बनता है. इसके बाद, सिस्टम प्रॉपर्टी ro.boot.product.hardware.sku की वैल्यू जोड़ी जाती है.

    hal_uuid_map_value_of_ro.boot.product.hardware.sku.xml

ओएमएपीआई वेंडर स्टेबल सर्विस, इस फ़ाइल को /odm/etc/, /vendor/etc/ और /etc/ फ़ोल्डर में खोजती है. वेंडर यूयूआईडी मैपिंग कॉन्फ़िगरेशन फ़ाइल के बारे में ज़्यादा जानकारी यहां उपलब्ध है.

लागू करना

टारगेट बिल्ड पर, ओएमएपीआई वेंडर स्टेबल सर्विस की सुविधा चालू करने के लिए, ये बदलाव करने होंगे.

SecureElement

SecureElement

डिवाइस के हिसाब से बने फ़ोल्डर में, रिसॉर्स ओवरले का इस्तेमाल करके, सर्विस फ़्लैग secure_element_vintf_enabled चालू करें.

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

अपनी सेवा के लिए, यूआईडी और यूयूआईडी मैपिंग एक्सएमएल तय करें.

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

डिवाइस ऐप्लिकेशन रेफ़रंस के तौर पर यूयूआईडी का इस्तेमाल करके, HAL सेवा के लिए सुरक्षित एलिमेंट एआर उपलब्ध कराएं. मैपिंग कॉन्फ़िगरेशन में एक मैपिंग एंट्री जोड़ें. इसमें, इस यूयूआईडी को HAL मॉड्यूल यूआईडी से मैप किया जा सकता है. इस मैपिंग की मदद से, वेंडर HAL मॉड्यूल को सुरक्षित एलिमेंट ऐक्सेस करने की अनुमति देते हैं. HAL मॉड्यूल में, ओएमएपीआई वेंडर स्टेबल सर्विस को चालू करने के लिए, ओएमएपीआई वीटीएस टेस्ट को रेफ़रंस के तौर पर इस्तेमाल किया जा सकता है.

HAL मॉड्यूल सेपॉलिसी अपडेट करें: HAL मॉड्यूल के लिए सेपॉलिसी नियम जोड़ें, ताकि उनके डोमेन को ओएमएपीआई वेंडर स्टेबल सर्विस ऐक्सेस करने की अनुमति मिल सके.

    allow hal_module_label secure_element_service:service_manager find

ओएमएपीआई वेंडर स्टेबल सर्विस से कनेक्ट करें: HAL मॉड्यूल से, सर्विस से कनेक्ट करने के लिए, ओएमएपीआई वेंडर सर्विस लेबल android.se.omapi.ISecureElementService/defaultandroid.se.omapi.ISecureElementService/default का इस्तेमाल करें.

सत्यापन

ओएमएपीआई वीटीएस टेस्ट चलाकर, पुष्टि करें कि ओएमएपीआई वेंडर स्टेबल सर्विस को सफलतापूर्वक लागू किया गया है ओएमएपीआई वीटीएस टेस्ट.

    run vts -m VtsHalOmapiSeServiceV1_TargetTest
    run vts -m VtsHalOmapiSeAccessControlTestCases