אפליקציות שנחתמו על ידי הפלטפורמה הן אפליקציות שמשתפות את אותו אישור חתימה (או אישור חתימה תואם) עם חבילת הפלטפורמה (android). אפליקציה שנחתמה על ידי הפלטפורמה יכולה להיות אפליקציית מערכת (שנמצאת במחיצה של קובץ אימג' של המערכת) או אפליקציה שאינה אפליקציית מערכת. הרשאות חתימה על ידי הפלטפורמה הן הרשאות שמוגדרות על ידי חבילת הפלטפורמה, ויש להן גם רמת הגנה של signature. גרסאות build שאפשר לבצע בהן ניפוי באגים הן גרסאות build שבהן הפונקציה android.os.Build.isDebuggable() מחזירה true, כמו גרסאות build של userdebug או eng.
בעבר, ליצרני מכשירים הייתה שליטה מועטה בהרשאות של פלטפורמת signature שאפשר להעניק לאפליקציות לא מערכתיות שחתומות על ידי הפלטפורמה.
החל מ-Android 15, יצרנים יכולים להעניק במפורש הרשאות חתימה לפלטפורמה בקובצי ה-XML של תצורת המערכת בספרייה /etc/permissions. אם אפליקציה לא מערכתית שנחתמה על ידי פלטפורמה לא נוספה לרשימת ההיתרים של הרשאת חתימה על ידי פלטפורמה, ההרשאה הזו פועלת כאילו האפליקציה לא נחתמה על ידי פלטפורמה בגרסאות שלא ניתן לבצע בהן ניפוי באגים.
הוספת רשימת היתרים
אפשר לפרט את רשימות ההיתרים של האפליקציות בקובץ XML יחיד או בכמה קובצי XML שנמצאים בספרייה /etc/permissions:
/etc/permissions/signature-permissions-OEM_NAME.xml/etc/permissions/signature-permissions-DEVICE_NAME.xml
אין כלל מחמיר לגבי האופן שבו התוכן מאורגן. מיישמי המכשירים יכולים לקבוע את מבנה התוכן, בתנאי שהאפליקציות המתאימות וההרשאות שלהן מתווספות לרשימת ההיתרים.
התאמה אישית של רשימת היתרים
AOSP כולל הטמעה של רשימת היתרים שאפשר להתאים אישית לפי הצורך, בדומה לרשימת ההיתרים של הרשאות מיוחדות. לדוגמה:
<!--
~ This XML file declares which platform signature permissions to grant to
~ platform signed nonsystem apps.
-->
<permissions>
<signature-permissions package="com.android.example">
<permission name="android.permission.READ_DEVICE_CONFIG"/>
...
</signature-permissions>
...
</permissions>
איך למצוא הרשאות חסרות
כדי למצוא הרשאות חסרות, מתקינים את האפליקציה החתומה של הפלטפורמה ובודקים את יומני המכשיר כדי למצוא הודעות אזהרה בפורמט הבא:
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
המערכת עדיין יכולה להעניק את ההרשאה בגרסאות שניתנות לניפוי באגים, אבל לא בגרסאות שלא ניתן לנפות בהן באגים, כמו גרסאות user.