স্বাক্ষর অনুমতি অনুমতি তালিকা

প্ল্যাটফর্ম সাইনড অ্যাপ হলো সেইসব অ্যাপ যা প্ল্যাটফর্ম প্যাকেজের ( android ) সাথে একই (বা সামঞ্জস্যপূর্ণ) সাইনিং সার্টিফিকেট শেয়ার করে। একটি প্ল্যাটফর্ম সাইনড অ্যাপ একটি সিস্টেম অ্যাপ (যা একটি সিস্টেম ইমেজ পার্টিশনে অবস্থিত) বা একটি নন-সিস্টেম অ্যাপ হতে পারে। প্ল্যাটফর্ম সিগনেচার পারমিশন হলো প্ল্যাটফর্ম প্যাকেজ দ্বারা সংজ্ঞায়িত পারমিশন, যেগুলোর signature প্রোটেকশন লেভেলও থাকে। ডিবাগযোগ্য বিল্ড হলো সেইসব বিল্ড যাদের android.os.Build.isDebuggable() ফাংশনটি true রিটার্ন করে, যেমন userdebug বা eng বিল্ড।

ঐতিহাসিকভাবে, প্ল্যাটফর্ম সাইনড ননসিস্টেম অ্যাপগুলোকে কোন প্ল্যাটফর্ম signature পারমিশন দেওয়া যাবে, সে বিষয়ে ডিভাইস নির্মাতাদের খুব কম নিয়ন্ত্রণ ছিল। অ্যান্ড্রয়েড ১৫ থেকে, নির্মাতারা /etc/permissions ডিরেক্টরিতে থাকা সিস্টেম কনফিগারেশন XML ফাইলগুলিতে সুস্পষ্টভাবে প্ল্যাটফর্ম সিগনেচার পারমিশন দিতে পারেন। যদি কোনো প্ল্যাটফর্ম সাইনড ননসিস্টেম অ্যাপকে কোনো প্ল্যাটফর্ম সিগনেচার পারমিশনের allowlist-এ যোগ করা না হয়, তাহলে নন-ডিবাগযোগ্য বিল্ডগুলিতে সেই পারমিশনটি এমনভাবে কাজ করে যেন অ্যাপটি প্ল্যাটফর্ম সাইনড নয়।

একটি অনুমতি তালিকা যোগ করুন

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

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

কন্টেন্ট কীভাবে সাজানো হবে, সে বিষয়ে কোনো কঠোর নিয়ম নেই। ডিভাইস নির্মাতারা কন্টেন্টের কাঠামো নির্ধারণ করতে পারেন, তবে শর্ত হলো উপযুক্ত অ্যাপগুলো এবং তাদের অনুমতিগুলো অনুমোদিত তালিকায় (allowlist) যুক্ত করতে হবে।

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

AOSP-তে একটি allowlist ইমপ্লিমেন্টেশন অন্তর্ভুক্ত রয়েছে যা আপনি প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারেন, যা প্রিভিলেজড পারমিশন allowlist-এর অনুরূপ। উদাহরণস্বরূপ:

<!--
  ~ This XML file declares which platform signature permissions to grant to
  ~ platform signed nonsystem apps.
  -->

<permissions>
    <signature-permissions package="com.android.example">
        <permission name="android.permission.READ_DEVICE_CONFIG"/>
        ...
    </signature-permissions>
    ...
</permissions>

অনুপস্থিত অনুমতিগুলি খুঁজুন

অনুপস্থিত অনুমতিগুলি খুঁজে বের করতে, আপনার প্ল্যাটফর্ম দ্বারা স্বাক্ষরিত অ্যাপটি ইনস্টল করুন এবং ডিভাইস লগগুলিতে নিম্নলিখিত বিন্যাসের সতর্কীকরণ বার্তাগুলি পরীক্ষা করুন:

Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist

সিস্টেমটি ডিবাগযোগ্য বিল্ডের ক্ষেত্রে অনুমতি দিতে পারলেও, user বিল্ডের মতো নন-ডিবাগযোগ্য বিল্ডের ক্ষেত্রে তা পারে না।