हस्ताक्षर की अनुमति वाली सूची

प्लैटफ़ॉर्म से साइन किए गए ऐप्लिकेशन, ऐसे ऐप्लिकेशन होते हैं जो प्लैटफ़ॉर्म पैकेज (android) के साथ एक ही (या उससे मिलता-जुलता) साइनिंग सर्टिफ़िकेट शेयर करते हैं. प्लैटफ़ॉर्म से साइन किया गया ऐप्लिकेशन, सिस्टम ऐप्लिकेशन (सिस्टम इमेज पार्टीशन पर मौजूद) या नॉनसिस्टम ऐप्लिकेशन हो सकता है. प्लैटफ़ॉर्म सिग्नेचर की अनुमतियां, प्लैटफ़ॉर्म पैकेज से तय की गई अनुमतियां होती हैं. इनमें signature सुरक्षा स्तर भी होता है. डीबग किए जा सकने वाले बिल्ड ऐसे बिल्ड होते हैं जिनके android.os.Build.isDebuggable() रिटर्न true होते हैं. जैसे, userdebug या eng बिल्ड.

पहले, डिवाइस बनाने वाली कंपनियों के पास यह कंट्रोल नहीं होता था कि वे प्लैटफ़ॉर्म पर साइन किए गए नॉनसिस्टम ऐप्लिकेशन को signature की कौनसी अनुमतियां दे सकती हैं. Android 15 से, मैन्युफ़ैक्चरर /etc/permissions डायरेक्ट्री में मौजूद सिस्टम कॉन्फ़िगरेशन वाली एक्सएमएल फ़ाइलों में, प्लैटफ़ॉर्म के सिग्नेचर की अनुमतियां साफ़ तौर पर दे सकते हैं. अगर किसी ऐसे प्लैटफ़ॉर्म पर हस्ताक्षर किए गए ऐप्लिकेशन को प्लैटफ़ॉर्म के हस्ताक्षर की अनुमति के लिए अनुमति वाली सूची में नहीं जोड़ा गया है, तो यह अनुमति इस तरह काम करती है जैसे कि ऐप्लिकेशन पर, डीबग नहीं की जा सकने वाली बिल्ड पर प्लैटफ़ॉर्म के हस्ताक्षर नहीं किए गए हैं.

अनुमति वाली सूची जोड़ना

ऐप्लिकेशन के लिए, अनुमति देने की सूची को एक एक्सएमएल फ़ाइल या /etc/permissions डायरेक्ट्री में मौजूद कई एक्सएमएल फ़ाइलों में शामिल किया जा सकता है:

  • /etc/permissions/signature-permissions-OEM_NAME.xml
  • /etc/permissions/signature-permissions-DEVICE_NAME.xml

कॉन्टेंट को व्यवस्थित करने के तरीके पर कोई सख्त नियम लागू नहीं होता. डिवाइस बनाने वाली कंपनियां, कॉन्टेंट का स्ट्रक्चर तय कर सकती हैं. हालांकि, इसके लिए ज़रूरी है कि अनुमति वाले ऐप्लिकेशन और उनकी अनुमतियों को अनुमति वाली सूची में जोड़ा गया हो.

अनुमति वाली सूची को पसंद के मुताबिक बनाना

AOSP में, अनुमति वाली सूची को लागू करने की सुविधा शामिल होती है. इसे अपनी ज़रूरत के हिसाब से बदला जा सकता है. यह सुविधा, अनुमति वाली सूची में शामिल खास अनुमतियों की तरह ही होती है. उदाहरण के लिए:

<!--
  ~ This XML file declares which platform signature permissions to grant to
  ~ platform signed nonsystem apps.
  -->

<permissions>
    <signature-permissions package="com.android.example">
        <permission name="android.permission.READ_DEVICE_CONFIG"/>
        ...
    </signature-permissions>
    ...
</permissions>

उन अनुमतियों का पता लगाना जो मौजूद नहीं हैं

अनुमतियों के बारे में जानकारी न मिलने पर, अपने प्लैटफ़ॉर्म पर साइन किया गया ऐप्लिकेशन इंस्टॉल करें. साथ ही, डिवाइस के लॉग में चेतावनी वाले मैसेज इस फ़ॉर्मैट में देखें:

Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist

सिस्टम, डीबग की जा सकने वाली बिल्ड पर अब भी अनुमति दे सकता है. हालांकि, डीबग नहीं की जा सकने वाली बिल्ड, जैसे कि user बिल्ड पर अनुमति नहीं दी जा सकती.