প্রিভিলেজড পারমিশন অ্যালোলিস্টিং

সেভ করা পৃষ্ঠা গুছিয়ে রাখতে 'সংগ্রহ' ব্যবহার করুন আপনার পছন্দ অনুযায়ী কন্টেন্ট সেভ করুন ও সঠিক বিভাগে রাখুন।

প্রিভিলেজড অ্যাপ হল সিস্টেম অ্যাপ যা সিস্টেম ইমেজ পার্টিশনগুলির একটিতে একটি priv-app ডিরেক্টরিতে অবস্থিত। অ্যান্ড্রয়েড রিলিজের জন্য ব্যবহৃত পার্টিশনগুলি হল

  • অ্যান্ড্রয়েড 8.1 এবং নিম্নতর - /system
  • Android 9 এবং উচ্চতর - /system, /product, /vendor

এই পৃষ্ঠা জুড়ে, /etc/permissions/priv-app partition /etc/permissions/priv-app

ঐতিহাসিকভাবে, ডিভাইস প্রস্তুতকারকদের কোন স্বাক্ষরের উপর খুব কম নিয়ন্ত্রণ ছিল| বিশেষাধিকারপ্রাপ্ত অ্যাপগুলিকে বিশেষ অনুমতি দেওয়া যেতে পারে৷ অ্যান্ড্রয়েড 8.0 থেকে শুরু করে, নির্মাতাদের অবশ্যই /etc/permissions ডিরেক্টরিতে সিস্টেম কনফিগারেশন XML ফাইলগুলিতে বিশেষ সুবিধাপ্রাপ্ত অনুমতি দিতে হবে। অ্যান্ড্রয়েড 9 অনুযায়ী, বাস্তবায়নকারীদের অবশ্যই স্পষ্টভাবে সমস্ত সুবিধাপ্রাপ্ত অনুমতি প্রদান বা অস্বীকার করতে হবে বা ডিভাইসটি বুট হবে না।

privapp-permissions.xml ফাইলটি শুধুমাত্র একই পার্টিশনে বিশেষ সুবিধাপ্রাপ্ত অ্যাপের জন্য অনুমতি দিতে বা অস্বীকার করতে পারে। উদাহরণস্বরূপ, যদি /product পার্টিশনের একটি অ্যাপ বিশেষাধিকারপ্রাপ্ত অনুমতির জন্য অনুরোধ করে, তাহলে অনুরোধটি শুধুমাত্র একটি privapp-permissions.xml ফাইল দ্বারা মঞ্জুর বা অস্বীকার করা যেতে পারে যেটি /product এও রয়েছে।

অনুমোদিত তালিকা যোগ করা হচ্ছে

অ্যাপ্লিকেশানগুলির জন্য অনুমতি তালিকাগুলি একটি একক XML বা frameworks/base/etc/permissions নির্দেশিকাতে অবস্থিত একাধিক XML ফাইলে তালিকাভুক্ত করা যেতে পারে:

  • /etc/permissions/privapp-permissions- OEM_NAME .xml
  • /etc/permissions/privapp-permissions- DEVICE_NAME .xml

বিষয়বস্তু সংগঠিত করার জন্য কোন কঠোর নিয়ম নেই। যতক্ষণ না /system/priv-app এর সমস্ত অ্যাপ অনুমোদিত তালিকায় থাকে ততক্ষণ পর্যন্ত ডিভাইস বাস্তবায়নকারীরা সামগ্রীর কাঠামো নির্ধারণ করতে পারে। যেমন, Google-এর দ্বারা ডেভেলপ করা সমস্ত বিশেষ সুবিধাপ্রাপ্ত অ্যাপের জন্য Google-এর একটি একক অনুমতি তালিকা রয়েছে এবং নিম্নলিখিত সংস্থাকে সুপারিশ করে:

  • ইতিমধ্যেই অ্যান্ড্রয়েড ওপেন সোর্স প্রজেক্ট (AOSP) ট্রিতে অন্তর্ভুক্ত অ্যাপগুলির অনুমতি /etc/permissions/privapp-permissions-platform.xml এ তালিকাভুক্ত করা হয়েছে।
  • Google অ্যাপের অনুমতি /etc/permissions/privapp-permissions-google.xml এ তালিকাভুক্ত করা হয়েছে।
  • অন্যান্য অ্যাপের জন্য, ফর্মের ফাইলগুলি ব্যবহার করুন: /etc/permissions/privapp-permissions- DEVICE_NAME .xml

অনুমোদিত তালিকা কাস্টমাইজ করা

AOSP-এ একটি অনুমোদিত তালিকা বাস্তবায়ন অন্তর্ভুক্ত যা প্রয়োজন অনুযায়ী কাস্টমাইজ করা যেতে পারে। AOSP-এ অন্তর্ভুক্ত অ্যাপগুলির অনুমতিগুলি ইতিমধ্যেই /etc/permissions/privapp-permissions-platform.xml এ অনুমোদিত তালিকাভুক্ত।

যদি এমন অনুমতি থাকে যা অস্বীকার করা উচিত, তবে "অনুমতি" ট্যাগের পরিবর্তে "অনুমতি অস্বীকার" ট্যাগ ব্যবহার করতে XML সম্পাদনা করুন৷ উদাহরণ:

<!-- This XML file declares which signature|privileged permissions to grant to
privileged apps that come with the platform -->

    <permissions>
    <privapp-permissions package="com.android.backupconfirm">
    <permission name="android.permission.BACKUP"/>
    <permission name="android.permission.CRYPT_KEEPER"/>
    </privapp-permissions>

    <privapp-permissions package="com.android.cellbroadcastreceiver">

    <!-- Don't allow the application to interact across users -->

    <deny-permission name="android.permission.INTERACT_ACROSS_USERS"/>
    <permission name="android.permission.MANAGE_USERS"/>
    <permission name="android.permission.MODIFY_PHONE_STATE"/>
    <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
    <permission name="android.permission.RECEIVE_EMERGENCY_BROADCAST"/>
    </privapp-permissions>
    ...

অনুপস্থিত অনুমতি খোঁজা

একটি নতুন ডিভাইস আনার সময় অনুপস্থিত অনুমতি খুঁজে পেতে, ট্রানজিশনাল লগ মোড সক্ষম করুন:

ro.control_privapp_permissions=log

লঙ্ঘনগুলি লগ ফাইলে রিপোর্ট করা হয়েছে, কিন্তু অ-সুবিধাপ্রাপ্ত অনুমতিগুলি এখনও মঞ্জুর করা হয়েছে৷ লঙ্ঘনের তালিকা প্রদান করার সময় এটি ডিভাইসটিকে একটি কার্যকরী অবস্থায় রাখে। এটি ত্রুটি বার্তা বিন্যাস:

PackageManager: Privileged permission {PERMISSION_NAME} for package {PACKAGE_NAME} - not in privapp-permissions allowlist

উপযুক্ত অনুমতি তালিকায় অনুপস্থিত অনুমতিগুলি যোগ করে সমস্ত লঙ্ঘনের সমাধান করতে হবে।

  • অ্যান্ড্রয়েড 8.0 এবং তার নিচের সংস্করণে, প্রভাবিত অ্যাপগুলিকে অনুপস্থিত অনুমতি দেওয়া হয় না যদিও তারা priv-app পাথে থাকে।
  • অ্যান্ড্রয়েড 9 এবং উচ্চতর সংস্করণে, লঙ্ঘন ( সুবিধাপ্রাপ্ত অনুমতিগুলির) মানে ডিভাইসটি বুট হয় না ৷ আপনাকে অবশ্যই সুস্পষ্টভাবে সমস্ত বিশেষাধিকারপ্রাপ্ত অনুমতিগুলিকে অনুমতি দিতে হবে বা অস্বীকার করতে হবে৷

মঞ্জুরি তালিকা কার্যকর করা

অনুমোদনের তালিকা তৈরি হওয়ার পরে, বিল্ড প্রপার্টি ro.control_privapp_permissions=enforce সেট করে রানটাইম এনফোর্সমেন্ট সক্ষম করুন।