קל לארגן דפים בעזרת אוספים
אפשר לשמור ולסווג תוכן על סמך ההעדפות שלך.
אפליקציות בחתימה של פלטפורמה הן אפליקציות שיש להן את אותו אישור חתימה (או אישור תואם) שיש לחבילת הפלטפורמה (android). אפליקציה בחתימה של פלטפורמה יכולה להיות אפליקציית מערכת (שנמצאת במחיצה של קובץ האימג' של המערכת) או אפליקציה שאינה אפליקציית מערכת. הרשאות חתימה של פלטפורמה הן הרשאות שמוגדרות על ידי חבילת הפלטפורמה ויש להן גם את רמת ההגנה signature. גרסאות build שניתן לנפות באגים הן גרסאות build שבהן android.os.Build.isDebuggable() מחזירה את הערך true, כמו גרסאות build מסוג userdebug או eng.
בעבר, ליצרני המכשירים הייתה שליטה מועטה על ההרשאות של signature בפלטפורמה שאפשר להעניק לאפליקציות לא מערכתיות שחתומות על ידי הפלטפורמה.
החל מ-Android 15, יצרנים יכולים להקצות הרשאות חתימה על פלטפורמה באופן מפורש בקובצי ה-XML של הגדרות המערכת בספרייה /etc/permissions. אם אפליקציה לא מערכתית עם חתימה בפלטפורמה לא מתווספת לרשימת ההיתרים של הרשאת חתימה בפלטפורמה, ההרשאה הזו פועלת כאילו האפליקציה לא חתומה בפלטפורמה בגרסאות build שלא ניתן לנפות בהן באגים.
הוספת רשימת היתרים
אפשר לרשום רשימות של הרשאות לאפליקציות בקובץ XML יחיד או בכמה קובצי XML שנמצאים בספרייה frameworks/base/etc/permissions:
כדי למצוא הרשאות חסרות, מתקינים את האפליקציה החתומה בפלטפורמה ובודקים ביומני המכשיר אם יש הודעות אזהרה בפורמט הבא:
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
המערכת עדיין יכולה להעניק את ההרשאה לגרסאות build שניתן לנפות באגים בהן, אבל לא לגרסאות build שלא ניתן לנפות בהן באגים, כמו גרסאות build מסוג user.
דוגמאות התוכן והקוד שבדף הזה כפופות לרישיונות המפורטים בקטע רישיון לתוכן. Java ו-OpenJDK הם סימנים מסחריים או סימנים מסחריים רשומים של חברת Oracle ו/או של השותפים העצמאיים שלה.
עדכון אחרון: 2025-07-27 (שעון UTC).
[[["התוכן קל להבנה","easyToUnderstand","thumb-up"],["התוכן עזר לי לפתור בעיה","solvedMyProblem","thumb-up"],["סיבה אחרת","otherUp","thumb-up"]],[["חסרים לי מידע או פרטים","missingTheInformationINeed","thumb-down"],["התוכן מורכב מדי או עם יותר מדי שלבים","tooComplicatedTooManySteps","thumb-down"],["התוכן לא עדכני","outOfDate","thumb-down"],["בעיה בתרגום","translationIssue","thumb-down"],["בעיה בדוגמאות/בקוד","samplesCodeIssue","thumb-down"],["סיבה אחרת","otherDown","thumb-down"]],["עדכון אחרון: 2025-07-27 (שעון UTC)."],[],[],null,["# Signature permission allowlist\n\nPlatform signed apps are apps sharing the same (or compatible) signing\ncertificate with the platform package (`android`). A platform signed app can be\na system app (located on a system image partition), or a nonsystem app.\nPlatform signature permissions are permissions defined by the platform package\nthat also have the `signature` protection level. Debuggable builds are builds\nwhose `android.os.Build.isDebuggable()` return `true`, such as `userdebug` or\n`eng` builds.\n| **Note:** On this page, `/etc/permissions` resolves to \u003cvar translate=\"no\"\u003epartition\u003c/var\u003e`/etc/permissions`.\n\nHistorically, device manufacturers had little control over which platform\n`signature` permissions could be granted to platform signed nonsystem apps.\nStarting in Android 15, manufacturers can explicitly\ngrant platform signature permissions in the system configuration XML files in\nthe `/etc/permissions` directory. If a platform signed nonsystem app isn't\nadded to the allowlist for a platform signature permission, that permission acts\nas if the app isn't platform signed on nondebuggable builds.\n| **Note:** The allowlist isn't enforced on debuggable builds to facilitate easier testing.\n| **Note:** platform signed system apps and their requested permissions aren't affected by this change, however permissions newly requested by a system app update (but not requested by the original system app) still need to be added to the allowlist.\n\nAdd an allowlist\n----------------\n\nYou can list permission allowlists for apps in a single XML file or in multiple\nXML files located in the `frameworks/base/etc/permissions` directory:\n\n- `/etc/permissions/signature-permissions-`\u003cvar translate=\"no\"\u003eOEM_NAME\u003c/var\u003e`.xml`\n- `/etc/permissions/signature-permissions-`\u003cvar translate=\"no\"\u003eDEVICE_NAME\u003c/var\u003e`.xml`\n\nNo strict rule applies to how content is organized. Device implementers can\ndetermine content structure as long as the appropriate apps and their\npermissions are added to the allowlist.\n\nCustomize an allowlist\n----------------------\n\nAOSP includes an allowlist implementation that you can customize as needed,\nsimilar to the\n[privileged permission allowlist](/docs/core/permissions/perms-allowlist). For\nexample: \n\n \u003c!--\n ~ This XML file declares which platform signature permissions to grant to\n ~ platform signed nonsystem apps.\n --\u003e\n\n \u003cpermissions\u003e\n \u003csignature-permissions package=\"com.android.example\"\u003e\n \u003cpermission name=\"android.permission.READ_DEVICE_CONFIG\"/\u003e\n ...\n \u003c/signature-permissions\u003e\n ...\n \u003c/permissions\u003e\n\nFind missing permissions\n------------------------\n\nTo find missing permissions, install your platform signed app and inspect device\nlogs for the following format of warning messages: \n\n Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist\n\nThe system can still grant the permission on debuggable builds, but not on\nnondebuggable builds such as `user` builds."]]