המודול הראשי של 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).