Les applications signées à la plate-forme sont des applications partageant la même signature (ou une signature compatible).
certificat avec le package de plate-forme (android
). Une application signée par
la plate-forme peut être
une application système (située sur une partition d'image système) ou une application autre que système.
Les autorisations de signature de la plate-forme sont des autorisations définies par le package de la plate-forme
qui disposent également du niveau de protection signature
. Les builds débogables sont des builds
dont android.os.Build.isDebuggable()
renvoie true
, comme userdebug
ou
eng
builds.
Auparavant, les fabricants d'appareils contrôlaient peu la plate-forme.
signature
autorisations ont pu être accordées aux applications non système signées par la plate-forme.
À partir d'Android 15, les fabricants peuvent explicitement
accorder les autorisations de signature de la plateforme
dans les fichiers XML de configuration du système dans
le répertoire /etc/permissions
. Si une application non système signée
par une plate-forme n'est pas
à la liste d'autorisation pour une autorisation de signature de plate-forme, cette autorisation agit
comme si l'appli n'était pas signée
sur des builds non débogables.
Ajouter une liste d'autorisation
Vous pouvez répertorier les listes d'autorisation des applications dans un seul fichier XML ou dans plusieurs
Fichiers XML situés dans le répertoire frameworks/base/etc/permissions
:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
Aucune règle stricte ne s'applique à l'organisation du contenu. Les responsables de la mise en œuvre d’appareils peuvent déterminer la structure du contenu, à condition que les applications et leurs sont ajoutées à la liste d'autorisation.
Personnaliser une liste d'autorisation
AOSP inclut une implémentation de liste d’autorisation que vous pouvez personnaliser si nécessaire, similaire à liste d'autorisation d'autorisations privilégiées. Exemple :
<!--
~ 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>
Rechercher les autorisations manquantes
Pour trouver les autorisations manquantes, installez l'application signée par votre plate-forme et inspectez l'appareil journaux au format suivant de messages d'avertissement:
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
Le système peut toujours accorder l'autorisation sur les builds débogables, mais pas sur
Compilations non débogables telles que les builds user
.