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

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

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

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

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

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

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

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

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

<!--
  ~ 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 बिल्ड जैसे नॉन-डीबग किए जा सकने वाले बिल्ड पर अनुमति नहीं दे सकता.