PermissionController Mainline मॉड्यूल में, निजता नीतियां और अनुमतियां देने और उन्हें मैनेज करने से जुड़ा यूज़र इंटरफ़ेस (यूआई) होता है. उदाहरण के लिए, अनुमतियां देने और उन्हें मैनेज करने से जुड़ी नीतियां और यूज़र इंटरफ़ेस (यूआई).
PermissionController के बारे में जानकारी
PermissionController मॉड्यूल, अनुमति से जुड़े यूज़र इंटरफ़ेस (यूआई), लॉजिक, और भूमिकाओं को मैनेज करता है. इससे ऐप्लिकेशन को किसी खास मकसद के लिए ऐक्सेस करने की अनुमति मिलती है. यह इन चीज़ों को कंट्रोल करता है:
- रनटाइम की अनुमति देना (इसमें सिस्टम ऐप्लिकेशन को अनुमति देना भी शामिल है)
- रनटाइम की अनुमतियों को मैनेज करना (इसमें अनुमतियों को ग्रुप करना भी शामिल है)
- रनटाइम की अनुमति के इस्तेमाल को ट्रैक करना
- भूमिकाएं
Android 12 से, Role
के लिए फ़्रेमवर्क और सिस्टम सर्वर क्लास को मॉड्यूल में ले जाया गया है, ताकि Role
को पूरी तरह से मॉड्यूलर बनाया जा सके.
Android 10 में, Package Installer ऐप्लिकेशन को सेक्शन में बांटा गया है, ताकि अनुमतियों के लॉजिक को अपडेट किया जा सके. अपडेट किए जा सकने वाले मेनलाइन मॉड्यूल के तौर पर, PermissionController:
- सिर्फ़ स्टेबल @SystemApi के ज़रिए फ़्रेमवर्क के साथ इंटरैक्ट करता है. इसमें @hide API का इस्तेमाल नहीं किया जाता.
- यह अनुमति से जुड़े इंटेंट को प्राथमिकता > 0 के साथ हैंडल करता है.
- यह ओईएम को थीम को पसंद के मुताबिक बनाने की सुविधा देता है.
- यह ऐसी सेवाएं उपलब्ध कराता है जिनसे सिस्टम और ऐप्लिकेशन जुड़ सकते हैं. इनमें ये शामिल हैं: भूमिका का मैनेजमेंट, अनुमति रद्द करना, और अनुमति से जुड़ी बुनियादी जानकारी (सेटिंग के लिए).
- इस्तेमाल नहीं किए जा रहे ऐप्लिकेशन के लिए, अनुमतियों को अपने-आप वापस लेने की सुविधा उपलब्ध है. यह सुविधा Android 11 में नई है.
Android9 में, अनुमति कंट्रोल करने की सुविधा com.android.packageinstaller
का हिस्सा है.
इस्तेमाल न किए जा रहे ऐप्लिकेशन के लिए अनुमतियां अपने-आप वापस लेना
Android 11 में, PermissionsController मॉड्यूल उन ऐप्लिकेशन के लिए रनटाइम अनुमतियों को अपने-आप वापस ले सकता है जिन्हें लंबे समय से इस्तेमाल नहीं किया गया है. एसडीके 30 या इसके बाद के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, अनुमतियां अपने-आप रद्द होने की सुविधा डिफ़ॉल्ट रूप से चालू होती है. वहीं, एसडीके 29 या इससे पहले के वर्शन को टारगेट करने वाले ऐप्लिकेशन के लिए, यह सुविधा डिफ़ॉल्ट रूप से बंद होती है. इस सुविधा को चालू करने पर, यह रनटाइम की सभी अनुमतियों पर लागू होती है. हालांकि, यह पहले से दी गई सभी अनुमतियों पर लागू नहीं होती. इनमें नीति और सिस्टम के हिसाब से तय की गई अनुमतियां, डिफ़ॉल्ट रूप से दी गई अनुमतियां, और भूमिका के हिसाब से दी गई अनुमतियां शामिल हैं. ज़्यादा जानकारी के लिए, इस्तेमाल नहीं किए जा रहे ऐप्लिकेशन की अनुमतियां अपने-आप रीसेट होने की सुविधा लेख पढ़ें.
पैकेज का फ़ॉर्मैट
PermissionController मॉड्यूल का फ़ॉर्मैट, रिलीज़ के हिसाब से अलग-अलग होता है.
Android 11 या इसके बाद के वर्शन में, PermissionController मॉड्यूल APEX फ़ॉर्मैट में होता है और इसे अपडेट किया जा सकता है. पैकेज का नाम
com.google.android.permission
है.Android 10 में, PermissionController मॉड्यूल APK फ़ॉर्मैट में होता है और इसे अपडेट नहीं किया जा सकता. पैकेज का नाम
com.google.android.permissioncontroller
है.
मॉड्यूल की सीमा
Android 12 में, Permission मॉड्यूल का कोड packages/apps/PermissionController
(platform/packages/apps/PackageInstaller
प्रोजेक्ट) और frameworks/base/apex/permission
(यह frameworks/base
प्रोजेक्ट की सबडायरेक्ट्री है) से हटा दिया गया है.
packages/modules/Permission
के लिए नया प्रोजेक्ट स्ट्रक्चर इस तरह है:
frameworks/base/apex/permission
की फ़ाइलेंpackages/apps/PermissionController
से PermissionController फ़ाइलें
ओईएम, सैंपल कमांड का इस्तेमाल करके, अपने पैच को ओरिजनल प्रोजेक्ट डायरेक्ट्री से नई प्रोजेक्ट डायरेक्ट्री में ले जा सकते हैं.
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
पसंद के मुताबिक बनाएं
ओईएम, रनटाइम रिसोर्स ओवरले (आरआरओ) का इस्तेमाल करके, अनुमतियों के यूज़र इंटरफ़ेस (यूआई) की थीम (रंग, मार्जिन, फ़ॉन्ट, और ड्रॉएबल) को अपनी पसंद के मुताबिक बना सकते हैं.