अनुमति नियंत्रक

अनुमतियां कंट्रोलर मेनलाइन मॉड्यूल में निजता नीतियां और अनुमतियां देने और उन्हें मैनेज करने से जुड़ा यूज़र इंटरफ़ेस (यूआई) (उदाहरण के लिए, नीतियां और अनुमतियां देने और मैनेज करने के लिए यूज़र इंटरफ़ेस (यूआई).

अनुमति नियंत्रक के बारे में जानकारी

अनुमति से जुड़ा मॉड्यूल, अनुमति से जुड़े यूज़र इंटरफ़ेस (यूआई), लॉजिक, और भूमिकाओं को मैनेज करता है किसी खास मकसद के लिए ऐप्लिकेशन को ऐक्सेस करने की अनुमति दी जाए. यह इन चीज़ों को कंट्रोल करता है:

  • रनटाइम की अनुमति देना (इसमें सिस्टम ऐप्लिकेशन को देना शामिल है)
  • रनटाइम अनुमति का मैनेजमेंट (इसमें अनुमतियों को ग्रुप में बांटना भी शामिल है)
  • रनटाइम अनुमति के इस्तेमाल को ट्रैक करना
  • भूमिकाएं

Android 12 और इसके बाद के वर्शन में, फ़्रेमवर्क और सिस्टम सर्वर Role के लिए क्लास Role को पूरी तरह मॉड्यूलर बनाने के लिए, मॉड्यूल में मूव कर दिया गया है.

Android 10 में, पैकेज इंस्टॉलर ऐप्लिकेशन इसे सेक्शन में बांटा गया है, ताकि अनुमतियां लॉजिक अपडेट हो सकें. इस तौर पर अपडेट किया जा सकने वाला मेनलाइन मॉड्यूल, अनुमतियां कंट्रोलर:

  • फ़्रेमवर्क के साथ सिर्फ़ स्थिर @SystemApi के ज़रिए काम करता है (@hide API का इस्तेमाल नहीं किया जाता).
  • अनुमति से जुड़े इंटेंट को प्राथमिकता के साथ मैनेज करता है > 0.
  • यह ओईएम को पसंद के मुताबिक थीम बनाने का तरीका बताता है.
  • ऐसी सेवाएं देता है जिनसे सिस्टम और ऐप्लिकेशन बाइंड कर सकते हैं. इनमें ये शामिल हैं रोल मैनेजमेंट, अनुमति वापस लेना, और अनुमति की बुनियादी जानकारी (इसके लिए सेटिंग).
  • इस्तेमाल न किए गए ऐप्लिकेशन को अपने-आप रद्द करने की सुविधा उपलब्ध है. यह सुविधा Android में नई है 11).

Android9 में, अनुमति कंट्रोल करना com.android.packageinstaller.

इस्तेमाल न होने वाले ऐप्लिकेशन को अपने-आप रद्द करें

Android 11 में, अनुमतियां कंट्रोलर मॉड्यूल ये काम कर सकता है ऐसे ऐप्लिकेशन की रनटाइम की अनुमतियां अपने-आप रद्द हो जाती हैं जिनका इस्तेमाल की बढ़ी हुई अवधि नहीं होती है. SDK टूल 30 या उसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन को अपने-आप रद्द कर दिया जाएगा डिफ़ॉल्ट रूप से चालू रहता है, जबकि SDK टूल 29 या इससे पहले के वर्शन को टारगेट करने वाले ऐप्लिकेशन अपने-आप रद्द हो जाते हैं बंद है. यह सुविधा चालू होने पर, अपने-आप रद्द होने की सुविधा सभी रनटाइम पर असर डालती है अनुमतियां दी जाएंगी, लेकिन पहले से दी गई सभी अनुमतियों को छूट दी जाएगी. इनमें नीति और सिस्टम से जुड़ी अनुमतियों और डिफ़ॉल्ट तौर पर या भूमिका के तौर पर दी जाने वाली अनुमतियां. इसके लिए ज़्यादा जानकारी के लिए, इस्तेमाल नहीं की गई अनुमतियों को अपने-आप रीसेट करने की सुविधा देखें ऐप्लिकेशन हैं.

पैकेज फ़ॉर्मैट

अनुमतियों के मॉड्यूल का फ़ॉर्मैट, अलग-अलग रिलीज़ के हिसाब से अलग-अलग होता है.

  • Android 11 या उसके बाद के वर्शन में, PermissionController मॉड्यूल APEX फ़ॉर्मैट और यह अपडेट करने लायक है. पैकेज का नाम com.google.android.permission है.

  • Android 10 में, PermissionController मॉड्यूल APK फ़ॉर्मैट में है अपडेट किया जा सकता है. पैकेज का नाम com.google.android.permissioncontroller है.

मॉड्यूल की सीमा

Android 12 में अनुमति मॉड्यूल कोड को packages/apps/PermissionController से ले जाया गया है (platform/packages/apps/PackageInstaller प्रोजेक्ट) और frameworks/base/apex/permission (यह frameworks/base प्रोजेक्ट के लिए.

packages/modules/Permission के लिए नए प्रोजेक्ट का स्ट्रक्चर इस तरह है:

  • frameworks/base/apex/permission की फ़ाइलें
  • packages/apps/PermissionController से अनुमतियां देने वाली फ़ाइलें

OEM अपने पैच को एक जगह से दूसरी जगह ले जाने के लिए, सैंपल कमांड का इस्तेमाल कर सकते हैं ओरिजनल प्रोजेक्ट डायरेक्ट्री से नई प्रोजेक्ट डायरेक्ट्री में ले जाने की सुविधा.

किसी पैच को फ़्रेमवर्क/बेस/एपेक्स/अनुमति से हटाना

root/frameworks/base/$ git format-patch -1 --relative=apex/permission commit --stdout > patch-file.txt

root/packages/modules/Permission$ git am -p2 patch-file.txt

पैकेज/ऐप्लिकेशन/PermissionController से पैच को एक जगह से दूसरी जगह ले जाना

root/packages/apps/PermissionController$ git format-patch -1 commit --stdout > patch-file.txt

root/packages/modules/Permission$ git am -p2 --directory=PermissionController patch-file.txt

पसंद के मुताबिक बनाएं

OEM, अनुमतियों की यूज़र इंटरफ़ेस (यूआई) थीम (रंग, मार्जिन, फ़ॉन्ट, और ड्रॉबल) रनटाइम रिसॉर्स ओवरले का इस्तेमाल करता है) (RROS).