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

PermissionController मॉड्यूल अद्यतन करने योग्य गोपनीयता नीतियों और UI तत्वों को सक्षम करता है (उदाहरण के लिए, अनुमतियाँ देने और प्रबंधित करने के लिए नीतियां और UI)।

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

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

com.google.android.permissioncontroller APK विशिष्ट उद्देश्य के लिए ऐप्स तक पहुंच की अनुमति देने के लिए अनुमति-संबंधित UI, तर्क और भूमिकाओं को संभालता है। यह निम्नलिखित को नियंत्रित करता है:

  • रनटाइम अनुमति देना (सिस्टम ऐप्स को अनुदान सहित)

  • रनटाइम अनुमति प्रबंधन (अनुमतियों के समूहीकरण सहित)

  • रनटाइम अनुमति उपयोग ट्रैकिंग

  • भूमिकाएँ

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

  • केवल स्थिर @SystemApi (कोई @hide API उपयोग नहीं) के माध्यम से ढांचे के साथ सहभागिता करता है।

  • 0 से ऊपर की प्राथमिकता के साथ अनुमति-संबंधित इरादों को संभालता है।

  • ओईएम को थीम को अनुकूलित करने के लिए सक्षम करने के लिए एक तंत्र का खुलासा करता है।

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

  • अप्रयुक्त ऐप्स के लिए ऑटो-रिवोक का समर्थन करता है (एंड्रॉइड 11 में नया)।

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

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

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

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 से अनुमति नियंत्रक फ़ाइलें

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

अनुकूलन

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