لیست مجاز مجوز امضا

برنامه‌های امضاشده پلتفرم، برنامه‌هایی هستند که گواهی امضای یکسان (یا سازگار) را با بسته پلتفرم ( android ) به اشتراک می‌گذارند. یک برنامه امضا شده با پلتفرم می تواند یک برنامه سیستمی (واقع در یک پارتیشن تصویر سیستم) یا یک برنامه غیر سیستمی باشد. مجوزهای امضای پلتفرم مجوزهایی هستند که توسط بسته پلتفرم تعریف شده اند که سطح حفاظت signature را نیز دارند. بیلدهای قابل اشکال زدایی بیلدهایی هستند که android.os.Build.isDebuggable() true را برمی گرداند، مانند userdebug یا eng .

از لحاظ تاریخی، سازندگان دستگاه کنترل کمی بر مجوزهای signature پلتفرم می‌توانستند به برنامه‌های غیرسیستم امضاشده پلتفرم اعطا کنند. با شروع اندروید 15، سازندگان می‌توانند به صراحت مجوزهای امضای پلتفرم را در فایل‌های XML پیکربندی سیستم در فهرست /etc/permissions اعطا کنند. اگر یک برنامه غیرسیستمی با امضای پلتفرم به لیست مجاز برای مجوز امضای پلتفرم اضافه نشود، این مجوز به گونه‌ای عمل می‌کند که گویی برنامه روی پلتفرم امضا شده در ساخت‌های غیراشکال‌پذیر نیست.

یک لیست مجاز اضافه کنید

می‌توانید لیست‌های مجاز مجوز برای برنامه‌ها را در یک فایل XML یا در چندین فایل XML واقع در فهرست frameworks/base/etc/permissions فهرست کنید:

  • /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 نه.