PermissionController

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

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

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