প্ল্যাটফর্ম সই করা অ্যাপ হল এমন অ্যাপ যা প্ল্যাটফর্ম প্যাকেজের (android) সাথে একই (বা মানানসই) সই করা
সার্টিফিকেট শেয়ার করে। প্ল্যাটফর্ম সই করা অ্যাপ
সিস্টেম অ্যাপ (সিস্টেম ইমেজ পার্টিশনে অবস্থিত) বা নন-সিস্টেম অ্যাপ হতে পারে।
প্ল্যাটফর্ম সিগনেচার অনুমতি হল প্ল্যাটফর্ম প্যাকেজ দ্বারা নির্ধারিত অনুমতি
যেগুলিতে signature সুরক্ষা লেভেলও থাকে। ডিবাগ করা যায় এমন বিল্ড হল সেইসব বিল্ড
যেগুলির android.os.Build.isDebuggable() রিটার্ন true, যেমন userdebug বা
eng বিল্ড।
অতীতে, ডিভাইস প্রস্তুতকারকদের কাছে কোন প্ল্যাটফর্ম
signature অনুমতি প্ল্যাটফর্ম-স্বাক্ষরিত নন-সিস্টেম অ্যাপকে দেওয়া যেতে পারে তার উপর খুব কম নিয়ন্ত্রণ ছিল।
Android 15 থেকে শুরু করে, প্রস্তুতকারকরা /etc/permissions ডিরেক্টরিতে সিস্টেম কনফিগারেশন XML ফাইলে স্পষ্টভাবে
প্ল্যাটফর্ম সিগনেচার সংক্রান্ত অনুমতি দিতে পারবেন।
কোনও প্ল্যাটফর্ম সাইন করা নন-সিস্টেম অ্যাপকে প্ল্যাটফর্ম সিগনেচার অনুমতির জন্য সাদাতালিকায় যোগ করা না হলে, সেই অনুমতি এমনভাবে কাজ করে
যেন অ্যাপটি নন-ডিবাগযোগ্য বিল্ডে প্ল্যাটফর্ম সাইন করা নয়।
অ্যালাউলিস্ট যোগ করা
আপনি কোনও একটি XML ফাইলে অথবা /etc/permissions ডিরেক্টরিতে থাকা একাধিক
XML ফাইলে অ্যাপের জন্য অনুমতি সংক্রান্ত শ্বেততালিকা তালিকাভুক্ত করতে পারবেন:
/etc/permissions/signature-permissions-OEM_NAME.xml/etc/permissions/signature-permissions-DEVICE_NAME.xml
কন্টেন্ট কীভাবে সাজানো হবে সেই ব্যাপারে কোনও কঠোর নিয়ম নেই। ডিভাইস ইমপ্লিমেন্টাররা সঠিক অ্যাপ ও সেগুলির অনুমতি সাদাতালিকায় যোগ করা থাকলে কন্টেন্টের স্ট্রাকচার নির্ধারণ করতে পারবেন।
অনুমতিপ্রাপ্ত তালিকা কাস্টমাইজ করা
AOSP-তে একটি অনুমোদিত তালিকা প্রয়োগ করার সুবিধা রয়েছে যা আপনি প্রয়োজন অনুযায়ী কাস্টমাইজ করতে পারবেন, এটি বিশেষাধিকারপ্রাপ্ত অনুমতির অনুমোদিত তালিকার মতো। যেমন:
<!--
~ 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 বিল্ডে অনুমতি দিতে পারে না।