簽章權限許可清單
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
平台簽署的應用程式是指共用相同 (或相容) 簽署的應用程式
並產生一個憑證 (android
)。可由平台簽署的應用程式
系統應用程式 (位於系統映像檔分區) 或非系統應用程式。
平台簽章權限是由平台套件定義的權限
同時具備 signature
防護等級可進行偵錯的版本為建構版本
其 android.os.Build.isDebuggable()
會傳回 true
,例如 userdebug
或
eng
版本。
注意: 在本頁中,/etc/permissions
會解析為
partition /etc/permissions
。
就以往的經驗來看,裝置製造商無法掌控要哪個平台
系統可能會將 signature
權限授予平台簽署的非系統應用程式。
從 Android 15 開始,製造商可明確
在以下項目的系統設定 XML 檔案中授予平台簽章權限:
/etc/permissions
目錄。如果沒有執行平台簽署的非系統應用程式
將權限加入平台簽章權限的許可清單中,就會對該權限執行動作
就像應用程式在無法偵錯的版本上簽署的平台一樣。
注意: 為便於偵錯,系統不會在可偵錯的版本上強制執行許可清單。
簡化測試流程。 注意: 由平台簽署的系統應用程式及其要求
這項變更不會影響權限,但新要求的權限
系統應用程式更新時 (但原始系統應用程式並未要求),
需要加入許可清單。
新增許可清單
您可以在單一 XML 檔案或多個檔案中,列出應用程式的權限許可清單
frameworks/base/etc/permissions
目錄中的 XML 檔案:
/etc/permissions/signature-permissions-OEM_NAME .xml
/etc/permissions/signature-permissions-DEVICE_NAME .xml
內容編排方式並無嚴謹,裝置實作者可以
判斷內容結構 (只要適當的應用程式
權限就會加入許可清單
自訂許可清單
Android 開放原始碼計畫提供許可清單實作內容,您可以視需要加以自訂。
類似
特殊權限許可清單 。例如:
<!--
~ 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
版本。
這個頁面中的內容和程式碼範例均受《內容授權 》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2024-09-04 (世界標準時間)。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"缺少我需要的資訊"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"過於複雜/步驟過多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"過時"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻譯問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/程式碼問題"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"容易理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"確實解決了我的問題"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{"lastModified": "\u4e0a\u6b21\u66f4\u65b0\u6642\u9593\uff1a2024-09-04 (\u4e16\u754c\u6a19\u6e96\u6642\u9593)\u3002"}
[[["容易理解","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"]],["上次更新時間:2024-09-04 (世界標準時間)。"]]