تحتوي الوحدة النمطية PermissionController Mainline على سياسات الخصوصية وواجهة المستخدم المتعلقة بمنح الأذونات وإدارتها (على سبيل المثال ، السياسات وواجهة المستخدم لمنح الأذونات وإدارتها).
حول PermissionController
تتعامل وحدة PermissionController مع واجهة المستخدم والمنطق والأدوار المتعلقة بالإذن للسماح بالوصول إلى التطبيقات لغرض معين. يتحكم في ما يلي:
- منح إذن وقت التشغيل (بما في ذلك منح تطبيقات النظام)
- إدارة أذونات وقت التشغيل (بما في ذلك تجميع الأذونات)
- تتبع استخدام إذن وقت التشغيل
- الأدوار
بدءًا من Android 12 ، يتم نقل فئات إطار العمل وخادم النظام لـ Role
إلى الوحدة النمطية لجعل Role
معياريًا بالكامل.
في Android 10 ، يتم تقسيم تطبيق Package Installer إلى أقسام لتمكين تحديث منطق الأذونات. كوحدة نمطية رئيسية قابلة للتحديث ، PermissionController:
- يتفاعل مع إطار العمل فقط عبر ثابتSystemApi (بدون استخدامhide API).
- يتعامل مع النوايا المتعلقة بالإذن بأولوية> 0.
- يعرض آلية لتمكين مصنعي المعدات الأصلية من تخصيص السمات.
- يوفر الخدمات التي يمكن للنظام والتطبيقات الارتباط بها ، بما في ذلك إدارة الدور وإلغاء الأذونات ومعلومات الأذونات الأساسية (للإعدادات).
- يدعم الإلغاء التلقائي للتطبيقات غير المستخدمة (جديد في Android 11).
في Android9 ، يعد التحكم في الأذونات جزءًا من com.android.packageinstaller
.
الإلغاء التلقائي للتطبيقات غير المستخدمة
في Android 11 ، يمكن لوحدة التحكم في الأذونات أن تلغي تلقائيًا أذونات وقت التشغيل للتطبيقات التي لم يتم استخدامها لفترة طويلة من الوقت. يتم تمكين الإلغاء التلقائي للتطبيقات التي تستهدف SDK 30 أو أعلى بشكل افتراضي ، بينما يتم تعطيل الإلغاء التلقائي للتطبيقات التي تستهدف SDK 29 أو أقل بشكل افتراضي. عند التمكين ، يؤثر الإلغاء التلقائي على جميع أذونات وقت التشغيل ولكنه يستثني جميع الأذونات الممنوحة مسبقًا ، بما في ذلك الأذونات والأذونات التي تم منحها بشكل افتراضي أو حسب الدور. للحصول على التفاصيل ، راجع أذونات إعادة التعيين التلقائي من التطبيقات غير المستخدمة .
تنسيق الحزمة
يختلف تنسيق وحدة PermissionController بين الإصدارات.
في Android 11 أو أعلى ، تكون وحدة PermissionController بتنسيق APEX وقابلة للتحديث. اسم الحزمة هو
com.google.android.permission
.في Android 10 ، تكون وحدة PermissionController بتنسيق APK وغير قابلة للتحديث. اسم الحزمة هو
com.google.android.permissioncontroller
.
حدود الوحدة
في Android 12 ، يتم نقل رمز وحدة الأذونات من packages/apps/PermissionController
( platform/packages/apps/PackageInstaller
) frameworks/base/apex/permission
(هذا دليل فرعي frameworks/base
).
هيكل المشروع الجديد packages/modules/Permission
هو كما يلي:
- ملفات من
frameworks/base/apex/permission
- ملفات PermissionController من
packages/apps/PermissionController
يمكن لمصنعي المعدات الأصلية استخدام نماذج الأوامر للمساعدة في نقل تصحيحاتهم من أدلة المشروع الأصلية إلى دليل المشروع الجديد.
انقل رقعة من أطر عمل / قاعدة / قمة / إذن
root/frameworks/base/$ git format-patch -1 --relative=apex/permission commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 patch-file.txt
انقل تصحيحًا من الحزم / التطبيقات / PermissionController
root/packages/apps/PermissionController$ git format-patch -1 commit --stdout > patch-file.txt
root/packages/modules/Permission$ git am -p2 --directory=PermissionController patch-file.txt
التخصيص
يمكن لمصنعي المعدات الأصلية تخصيص سمة واجهة مستخدم الأذونات (الألوان والهوامش والخطوط والعناصر القابلة للرسم) باستخدام تراكبات موارد وقت التشغيل (RROS) .