OMAPI वेंडर स्थिर इंटरफ़ेस

परिचय

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

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

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

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

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

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

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

वेंडर यूयूआईडी मैपिंग फ़ाइल का नाम, पहले से तय किए गए प्रीफ़िक्स 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/ फ़ोल्डर में खोजती है. वेंडर यूयूआईडी मैपिंग कॉन्फ़िगरेशन फ़ाइल के बारे में पूरी जानकारी यहां उपलब्ध है.

लागू करना

टारगेट किए गए बिल्ड पर, OMAPI वेंडर की स्थिर सेवा की सुविधा चालू करने के लिए, ये बदलाव करना ज़रूरी है.

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>

डिवाइस के ऐप्लिकेशन रेफ़रंस के तौर पर यूयूआईडी का इस्तेमाल करके, एचएएल सेवा के लिए सुरक्षित एलिमेंट एआर की सुविधा दें. मैपिंग कॉन्फ़िगरेशन में मैपिंग एंट्री जोड़ें, जहां इस यूयूआईडी को एचएएल मॉड्यूल के यूआईडी से मैप किया जा सकता है. इस मैपिंग की मदद से, वेंडर, एचएएल मॉड्यूल को सुरक्षित एलिमेंट ऐक्सेस करने की अनुमति दे रहे हैं. OMAPI VTS टेस्ट का इस्तेमाल, एचएएल मॉड्यूल में 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