בקר הרשאות

המודול PermissionController Mainline מכיל את כללי המדיניות בנושא פרטיות ואת ממשק המשתמש שקשור להענקה ולניהול של הרשאות (לדוגמה, כללי המדיניות וממשק המשתמש להענקה ולניהול של הרשאות).

מידע על PermissionsController

המודול PermissionController מטפל בממשק המשתמש, בלוגיקה ובתפקידים שקשורים להרשאות, כדי לאפשר לאפליקציות גישה למטרה ספציפית. היא שולטת בתכונות הבאות:

  • הענקת הרשאות בזמן ריצה (כולל הענקה לאפליקציות מערכת)
  • ניהול הרשאות בזמן ריצה (כולל קיבוץ הרשאות)
  • מעקב אחר השימוש בהרשאות בזמן ריצה
  • תפקידים

החל מ-Android 12, ה-framework ושרת המערכת כיתות עבור Role מועברים למודול כדי להפוך את Role מודולרי לגמרי.

ב-Android 10, האפליקציה 'מנהל החבילות' מפוצלים לקטעים כדי לאפשר עדכון לוגיקת ההרשאות. בתור updatable Mainline מודול, PermissionsController:

  • אינטראקציה עם ה-framework רק באמצעות גרסה יציבה של @SystemApi (ללא שימוש ב- @הסתרה של API).
  • טיפול בכוונות שקשורות להרשאות באמצעות עדיפות > 0.
  • מנגנון שמאפשר ליצרני ציוד מקורי להתאים אישית את העיצוב.
  • מספק שירותים שהמערכת והאפליקציות יכולות לקשר אליהם, כולל ניהול תפקידים, ביטול הרשאות ומידע בסיסי על הרשאות (ל הגדרות).
  • תמיכה בביטול אוטומטי של הרשאות לאפליקציות שלא בשימוש (חדש ב-Android 11).

ב-Android9, בקרת ההרשאות היא חלק מ com.android.packageinstaller

ביטול אוטומטי לאפליקציות שלא בשימוש

ב-Android 11, המודול PermissionsController יכול לבטל באופן אוטומטי הרשאות בסביבת זמן ריצה לאפליקציות שלא היו בשימוש במשך פרק זמן ארוך. באפליקציות שמטרגטות SDK מגרסה 30 ואילך, ביטול ההרשאה האוטומטי מופעל כברירת מחדל. באפליקציות שמטרגטות SDK מגרסה 29 ומטה, ביטול ההרשאה האוטומטי מושבת כברירת מחדל. כשהאפשרות מופעלת, הביטול האוטומטי ישפיע על כל זמני הריצה הרשאות אבל פטורות מכל ההרשאות שניתנו מראש, כולל הרשאות הרשאות שמוגדרות על ידי המערכת והרשאות שהוענקו כברירת מחדל או לפי תפקיד. עבור פרטים נוספים, אפשר לעיין באיפוס אוטומטי של הרשאות שלא נמצאות בשימוש של Google.

פורמט החבילה

הפורמט של המודול PermissionsController שונה בכל הגרסאות.

  • ב-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

יצרני ציוד מקורי יכולים להשתמש בפקודות לדוגמה כדי להעביר את התיקונים שלהם מהספריות המקוריות של הפרויקטים לספריית הפרויקט החדשה.

העברת תיקון מ-frameworks/base/apex/permission

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

העברת תיקון מ-packages/apps/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).