PermissionController মেইনলাইন মডিউলটিতে গোপনীয়তা নীতিমালা এবং অনুমতি প্রদান ও ব্যবস্থাপনার সাথে সম্পর্কিত ইউজার ইন্টারফেস (UI) থাকে (উদাহরণস্বরূপ, অনুমতি প্রদান ও ব্যবস্থাপনার জন্য নীতিমালা এবং UI)।
পারমিশন কন্ট্রোলার সম্পর্কে
PermissionController মডিউলটি নির্দিষ্ট উদ্দেশ্যে অ্যাপগুলোকে অ্যাক্সেস দেওয়ার জন্য অনুমতি-সম্পর্কিত UI, লজিক এবং রোল পরিচালনা করে। এটি নিম্নলিখিত বিষয়গুলো নিয়ন্ত্রণ করে:
- রানটাইম অনুমতি প্রদান (সিস্টেম অ্যাপগুলিকে অনুমতি প্রদান সহ)
- রানটাইম অনুমতি ব্যবস্থাপনা (অনুমতিসমূহের শ্রেণিবিভাগ সহ)
- রানটাইম অনুমতি ব্যবহারের ট্র্যাকিং
- ভূমিকা
অ্যান্ড্রয়েড ১২ থেকে, Role Role সম্পূর্ণরূপে মডিউলার করার জন্য এর ফ্রেমওয়ার্ক এবং সিস্টেম সার্ভার ক্লাসগুলোকে মডিউলের মধ্যে স্থানান্তর করা হয়েছে।
অ্যান্ড্রয়েড ১০-এ, পারমিশন লজিক আপডেট করার সুবিধার্থে প্যাকেজ ইনস্টলার অ্যাপটিকে বিভিন্ন সেকশনে বিভক্ত করা হয়েছে। একটি আপডেটেবল মেইনলাইন মডিউল হিসেবে, PermissionController:
- ফ্রেমওয়ার্কের সাথে শুধুমাত্র স্থিতিশীল @SystemApi-এর মাধ্যমে যোগাযোগ করে (@hide API ব্যবহার করা হয় না)।
- ০-এর বেশি অগ্রাধিকার সম্পন্ন অনুমতি-সংক্রান্ত ইন্টেন্টগুলো পরিচালনা করে।
- OEM-দের থিমিং কাস্টমাইজ করার সুযোগ দেওয়ার একটি পদ্ধতি উন্মোচন করে।
- এমন পরিষেবা প্রদান করে যার সাথে সিস্টেম এবং অ্যাপ্লিকেশনগুলি সংযুক্ত হতে পারে, যার মধ্যে রয়েছে ভূমিকা ব্যবস্থাপনা, অনুমতি প্রত্যাহার, এবং মৌলিক অনুমতি তথ্য (সেটিংস-এর জন্য)।
- অব্যবহৃত অ্যাপগুলোর জন্য স্বয়ংক্রিয় প্রত্যাহারের সুবিধা (অ্যান্ড্রয়েড ১১-এর নতুন সংযোজন)।
অ্যান্ড্রয়েড ৯-এ, অনুমতি নিয়ন্ত্রণ com.android.packageinstaller এর একটি অংশ।
অব্যবহৃত অ্যাপগুলির জন্য স্বয়ংক্রিয়ভাবে প্রত্যাহার
অ্যান্ড্রয়েড ১১-এ, PermissionsController মডিউলটি দীর্ঘ সময় ধরে অব্যবহৃত অ্যাপগুলির রানটাইম পারমিশন স্বয়ংক্রিয়ভাবে বাতিল করতে পারে। SDK 30 বা তার উচ্চতর সংস্করণের অ্যাপগুলিতে ডিফল্টরূপে অটো-রিভোক সক্রিয় থাকে, অন্যদিকে SDK 29 বা তার নিম্নতর সংস্করণের অ্যাপগুলিতে ডিফল্টরূপে অটো-রিভোক নিষ্ক্রিয় থাকে। সক্রিয় করা হলে, অটো-রিভোক সমস্ত রানটাইম পারমিশনকে প্রভাবিত করে, কিন্তু পলিসি- এবং সিস্টেম-ফিক্সড পারমিশন এবং ডিফল্টভাবে বা রোলের মাধ্যমে প্রদত্ত পারমিশন সহ আগে থেকে দেওয়া সমস্ত পারমিশনকে এর আওতা থেকে বাদ দেয়। বিস্তারিত জানতে, "অব্যবহৃত অ্যাপ থেকে পারমিশন স্বয়ংক্রিয়ভাবে রিসেট করুন" অংশটি দেখুন।
প্যাকেজ ফরম্যাট
রিলিজভেদে PermissionController মডিউলের ফরম্যাট ভিন্ন হয়।
অ্যান্ড্রয়েড ১১ বা তার পরবর্তী সংস্করণগুলিতে, PermissionController মডিউলটি APEX ফরম্যাটে থাকে এবং এটি আপডেটযোগ্য। এর প্যাকেজ নামটি হলো
com.google.android.permission।অ্যান্ড্রয়েড ১০-এ, PermissionController মডিউলটি APK ফরম্যাটে থাকে এবং এটি আপডেট করা যায় না। এর প্যাকেজ নেম হলো
com.google.android.permissioncontroller।
মডিউল সীমানা
অ্যান্ড্রয়েড ১২-এ, 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 ফাইলগুলো
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-রা রানটাইম রিসোর্স ওভারলে (RROS) ব্যবহার করে পারমিশন UI থিম (রং, মার্জিন, ফন্ট এবং ড্রয়েবল) কাস্টমাইজ করতে পারে।