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

परमिशनकंट्रोलर मेनलाइन मॉड्यूल में गोपनीयता नीतियां और अनुमतियां देने और प्रबंधित करने से संबंधित यूआई शामिल हैं (उदाहरण के लिए, अनुमतियां देने और प्रबंधित करने के लिए नीतियां और यूआई)।

परमिशनकंट्रोलर के बारे में

PermissionController मॉड्यूल विशिष्ट उद्देश्य के लिए ऐप्स तक पहुंच की अनुमति देने के लिए अनुमति-संबंधित यूआई, तर्क और भूमिकाओं को संभालता है। यह निम्नलिखित को नियंत्रित करता है:

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

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

एंड्रॉइड 10 में, अनुमति तर्क को अपडेट करने में सक्षम करने के लिए पैकेज इंस्टॉलर ऐप को अनुभागों में विभाजित किया गया है। एक अद्यतन करने योग्य मेनलाइन मॉड्यूल के रूप में, PermissionController:

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

Android9 में, अनुमति नियंत्रण com.android.packageinstaller का हिस्सा है।

अप्रयुक्त ऐप्स के लिए स्वतः निरस्त करें

एंड्रॉइड 11 में, PermissionsController मॉड्यूल स्वचालित रूप से उन ऐप्स के लिए रनटाइम अनुमतियों को रद्द कर सकता है जिनका लंबे समय तक उपयोग नहीं किया गया है। एसडीके 30 या उच्चतर को लक्षित करने वाले ऐप्स में डिफ़ॉल्ट रूप से ऑटो-रिवोक सक्षम होता है , जबकि एसडीके 29 या उससे कम को लक्षित करने वाले ऐप्स में डिफ़ॉल्ट रूप से ऑटो-रिवोक अक्षम होता है । सक्षम होने पर, ऑटो-रिवोक सभी रनटाइम अनुमतियों को प्रभावित करता है, लेकिन नीति- और सिस्टम-निर्धारित अनुमतियों और डिफ़ॉल्ट या भूमिका द्वारा दी गई अनुमतियों सहित सभी पूर्व-अनुदानित अनुमतियों को छूट देता है। विवरण के लिए, अप्रयुक्त ऐप्स से ऑटो-रीसेट अनुमतियां देखें।

पैकेज प्रारूप

PermissionController मॉड्यूल का प्रारूप रिलीज़ के बीच भिन्न होता है।

  • Android 11 या उच्चतर में, PermissionController मॉड्यूल APEX प्रारूप में है और अद्यतन करने योग्य है। पैकेज का नाम com.google.android.permission है।

  • Android 10 में, PermissionController मॉड्यूल APK प्रारूप में है और अद्यतन करने योग्य नहीं है। पैकेज का नाम com.google.android.permissioncontroller है।

मॉड्यूल सीमा

एंड्रॉइड 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 अपने पैच को मूल प्रोजेक्ट निर्देशिकाओं से नई प्रोजेक्ट निर्देशिका में स्थानांतरित करने में सहायता के लिए नमूना कमांड का उपयोग कर सकते हैं।

फ्रेमवर्क/बेस/एपेक्स/अनुमति से एक पैच को स्थानांतरित करें

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

पैकेज/ऐप्स/अनुमति नियंत्रक से एक पैच को स्थानांतरित करें

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

अनुकूलन

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