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

प्लैटफ़ॉर्म पर साइन किए गए ऐप्लिकेशन का मतलब ऐसे ऐप्लिकेशन हैं जो एक ही (या साथ काम करने वाले) साइनिंग को शेयर करते हैं प्लैटफ़ॉर्म पैकेज (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 बिल्ड.