القائمة المسموح بها لأذونات التوقيع

التطبيقات الموقَّعة على النظام الأساسي هي تطبيقات تشترك في التوقيع نفسه (أو المتوافق) شهادة مع حزمة النظام الأساسي (android). يمكن أن يكون التطبيق الموقَّع تطبيق نظام (متوفّر في أحد أقسام نسخة النظام) أو تطبيق غير تابع للنظام أذونات توقيع النظام الأساسي هي أذونات تحدّدها حزمة النظام الأساسي. التي تتضمّن أيضًا مستوى الحماية signature الإصدارات التي يمكن تصحيح الأخطاء فيها هي إصدارات التي تعرض قيمة android.os.Build.isDebuggable() فيها true، مثل userdebug أو عدد الإصدارات في eng:

سابقًا، لم يكن لدى الشركات المصنّعة للأجهزة سوى قدر ضئيل من التحكم في النظام الأساسي يمكن منح signature أذونات للتطبيقات غير التابعة للنظام الأساسي والموقَّعة. بدءًا من نظام التشغيل Android 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