PermissionController

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

החל באנדרואיד 12, כיתות המסגרת ושרת המערכת עבור Role מועברות למודול כדי להפוך את Role למודולרי לחלוטין.

על PermissionController

ה-APK של com.google.android.permissioncontroller מטפל בממשק משתמש, לוגיקה ותפקידים הקשורים להרשאות כדי לאפשר גישה לאפליקציות למטרה ספציפית. זה שולט על הדברים הבאים:

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

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

  • מעקב אחר שימוש בהרשאות בזמן ריצה

  • תפקידים

באנדרואיד 9, הרשאות כאלה היו חלק מ- com.google.android.packageinstaller . באנדרואיד 10, אפליקציית מתקין החבילות מפוצלת למקטעים כדי לאפשר עדכון לוגיקה של ההרשאות. כמודול Mainline ניתן לעדכון, PermissionController:

  • מקיים אינטראקציה עם המסגרת רק באמצעות @SystemApi יציב (ללא שימוש ב- @hide API).

  • מטפל בכוונות הקשורות להרשאות עם עדיפות מעל 0.

  • חושף מנגנון המאפשר ליצרני OEM להתאים אישית עיצוב.

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

  • תומך בביטול אוטומטי עבור אפליקציות שאינן בשימוש (חדש באנדרואיד 11).

ביטול אוטומטי עבור אפליקציות שאינן בשימוש

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

פורמט חבילה

מודול PermissionController מסופק כקובץ APK.

גבול מודול

באנדרואיד 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

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

העבר תיקון מ-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

העבר תיקון מחבילות/אפליקציות/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

התאמה אישית

יצרני OEM יכולים להתאים אישית את נושא ממשק המשתמש של ההרשאות (צבעים, שוליים, גופנים וציורים) באמצעות שכבות על משאבי זמן ריצה (RROS) .