التطبيقات الموقَّعة من النظام الأساسي هي تطبيقات تشارك شهادة التوقيع نفسها (أو متوافقة)
مع حزمة النظام الأساسي (android
). يمكن أن يكون التطبيق الموقَّع على النظام الأساسي
تطبيقًا للنظام (متوفّرًا في قسم صورة النظام) أو تطبيقًا غير تابع للنظام.
المعرّفات الفريدة والموقَّعة من النظام الأساسي هي معرّفات فريدة مشتركة (android:sharedUserId
)
تحتوي على تطبيقات موقَّعة من النظام الأساسي. النُسخ القابلة لتصحيح الأخطاء هي النُسخ التي يعرض فيها الرمز البرمجي android.os.Build.isDebuggable()
القيمة true
، مثل النُسخ userdebug
أو eng
.
في السابق، لم يكن لدى الشركات المصنّعة للأجهزة سوى تحكّم محدود في التطبيقات غير التابعة للنظام
الموقَّعة من النظام الأساسي التي يمكن أن تنضم إلى المعرّف الفريد العام الموقَّع على النظام الأساسي. بدءًا من الإصدار
15 من نظام التشغيل Android، يمكن للمصنعين السماح صراحةً لتطبيقات
غير النظامية الموقَّعة من النظام بالانضمام إلى أرقام تعريف المستخدمين المشترَكة الموقَّعة من النظام في ملفات SYSTEMملف XML لإعدادات النظام في الدليل /etc/permissions
. إذا لم تتم إضافة تطبيق غير برمجي
موقَّع من النظام إلى القائمة المسموح بها لرقم تعريف مستخدم مشترَك موقَّع من النظام، وواصل التطبيق
محاولة الانضمام إلى رقم التعريف المشترَك الموقَّع من النظام (مع android:sharedUserId
في البيان)، لا يمكن تثبيت هذا التطبيق على الإصدارات غير القابلة لتصحيح الأخطاء.
إضافة قائمة مسموح بها
يمكنك إدراج قوائم المسموح بها للتطبيقات في ملف XML واحد أو في ملفات XML متعددة،
على النحو التالي:
frameworks/base/data/etc/package-shareduid-allowlist.xml
:
<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.
- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
-->
<config>
<allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>
العثور على القائمة المسموح بها غير الظاهرة
للعثور على إدخال مفقود في القائمة المسموح بها، حاوِل تثبيت تطبيقك غير المرتبط بالنظام والذي تم توقيعه على النظام على إصدار لا يمكن تصحيح أخطاءه وتحقَّق مما إذا كان لا يزال بإمكانك تثبيته. إذا لم يكن الأمر كذلك، يمكنك فحص سجلات الجهاز بحثًا عن تنسيق الرسائل التحذيرية التالي:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}