בקר הרשאות

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

מידע על PermissionsController

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

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

החל מ-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 ואילך, המודול PermissionsController נמצא פורמט 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
  • קובצי PermissionsController מ-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

העברת תיקון מחבילות/אפליקציות/PermissionsController

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).