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

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

PermissionController के बारे में जानकारी

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

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

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

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

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

Android 9 में, अनुमति कंट्रोल करने की सुविधा com.android.packageinstaller का हिस्सा है.

इस्तेमाल न किए जा रहे ऐप्लिकेशन के लिए, अनुमतियां अपने-आप वापस लेना

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

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

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

  • 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 से मिली PermissionController फ़ाइलें

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

पैच को frameworks/base/apex/permission से किसी दूसरे फ़ोल्डर में ले जाना

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

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