وحدة التحكّم بالأذونات

تحتوي وحدة PermissionController Mainline على سياسات الخصوصية واجهة مستخدم تتعلق بمنح الأذونات وإدارتها (على سبيل المثال، السياسات واجهة مستخدم لمنح الأذونات وإدارتها

لمحة عن "أداة التحكّم في الأذونات"

تتعامل وحدة PermissionController مع واجهة المستخدم والمنطق والأدوار ذات الصلة بالأذونات للسماح بالوصول إلى التطبيقات لغرض محدّد. تتحكم هذه السياسة في ما يلي:

  • منح إذن وقت التشغيل (بما في ذلك منح تطبيقات النظام)
  • إدارة أذونات وقت التشغيل (بما في ذلك تجميع الأذونات)
  • تتبُّع استخدام إذن وقت التشغيل
  • الأدوار

بدءًا من نظام التشغيل Android 12، سيتم تحديد إطار العمل وخادم النظام صفوف لـ Role يتم نقلها إلى الوحدة لتصبح Role معياريًا تمامًا.

في نظام التشغيل Android 10، تم استخدام تطبيق "أداة تثبيت الحزم" إلى أقسام لتفعيل عملية تعديل منطق الأذونات. على سبيل المثال، وحدة تحكم رئيسية قابلة للتحديث، وحدة تحكم الأذونات:

  • ولا يتفاعل مع إطار العمل إلا من خلال نظام @SystemApi ثابت (بدون استخدام @hidden لواجهة برمجة التطبيقات).
  • التعامل مع الأهداف المتعلّقة بالأذونات ذات الأولوية > 0.
  • تعرض آلية لتمكين المصنّعين الأصليين للأجهزة من تخصيصهم.
  • لتقديم الخدمات التي يمكن أن يرتبط بها النظام والتطبيقات، بما في ذلك إدارة الأدوار وإبطال الأذونات ومعلومات الأذونات الأساسية (ل الإعدادات).
  • إتاحة الإبطال التلقائي للتطبيقات غير المستخدَمة (الميزة الجديدة في نظام Android) 11.

في Android9، يُعدّ التحكّم في الأذونات جزءًا من com.android.packageinstaller

الإبطال التلقائي للتطبيقات غير المستخدَمة

في نظام التشغيل Android 11، يمكن استخدام وحدة PermissionsController. إبطال أذونات التشغيل تلقائيًا للتطبيقات التي لم يتم استخدامها فترة زمنية طويلة. يتم إبطال تلقائيًا للتطبيقات التي تستهدف الإصدار 30 من حزمة تطوير البرامج (SDK) أو الإصدارات الأحدث. مفعّلة بشكل تلقائي، في حين أنّ التطبيقات التي تستهدف الإصدار 29 من حزمة تطوير البرامج (SDK) أو الإصدارات الأقدم يتم إبطالها تلقائيًا غير مفعَّل تلقائيًا. عند تفعيل هذا الإعداد، تؤثر الإبطال التلقائي في كل بيئة التشغيل ولكنها تستبعد جميع الأذونات الممنوحة مسبقًا، بما في ذلك الأذونات والأذونات التي يحددها النظام والتي يتم منحها بشكل تلقائي أو من خلال الدور. بالنسبة التفاصيل، يُرجى الرجوع إلى مقالة إعادة ضبط الأذونات تلقائيًا من عدم استخدام التطبيقات.

تنسيق الحزمة

يختلف تنسيق وحدة PermissionController بين الإصدارات.

  • في نظام التشغيل Android 11 أو الإصدارات الأحدث، تكون وحدة PermissionController في تنسيق APEX وقابلة للتحديث. اسم الحزمة هو com.google.android.permission.

  • في نظام التشغيل Android 10، تكون وحدة PermissionController بتنسيق APK وليست بتنسيق 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):