प्लैटफ़ॉर्म से साइन किए गए ऐप्लिकेशन, ऐसे ऐप्लिकेशन होते हैं जो प्लैटफ़ॉर्म पैकेज (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
कॉन्टेंट को व्यवस्थित करने के लिए कोई सख्त नियम लागू नहीं होता. डिवाइस लागू करने वाले लोग, कॉन्टेंट के स्ट्रक्चर को तय कर सकते हैं. हालांकि, इसके लिए ज़रूरी है कि अनुमति वाली सूची में सही ऐप्लिकेशन और उनकी अनुमतियां जोड़ी गई हों.
अनुमति वाली सूची को पसंद के मुताबिक बनाना
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
बिल्ड जैसे ऐसे बिल्ड पर अनुमति नहीं दी जा सकती जिन्हें डीबग नहीं किया जा सकता.