Liste d'autorisations de signature

Les applications signées par la plate-forme sont des applications qui partagent le même certificat de signature (ou un certificat compatible) avec le package de la 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 non système. Les autorisations de signature de la plate-forme sont des autorisations définies par le package de la plate-forme qui ont également le niveau de protection signature. Les versions débogables sont des versions dont android.os.Build.isDebuggable() renvoie true, comme les versions userdebug ou eng.

Historiquement, les fabricants d'appareils avaient peu de contrôle sur les autorisations signature de la plate-forme qui pouvaient être accordées aux applications non système signées par la plate-forme. À partir d'Android 15, les fabricants peuvent accorder explicitement des autorisations de signature de plate-forme dans les fichiers XML de configuration du système du répertoire /etc/permissions. Si une application non système signée par une plate-forme n'est pas ajoutée à la liste d'autorisation pour une autorisation de signature de plate-forme, cette autorisation agit comme si l'application n'était pas signée par la plate-forme sur les versions non débogables.

Ajouter une liste d'autorisation

Vous pouvez lister les listes d'autorisation d'applications dans un seul fichier XML ou dans plusieurs fichiers XML situés dans le répertoire /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 l'implémentation des appareils peuvent déterminer la structure du contenu à condition que les applications appropriées et leurs autorisations soient ajoutées à la liste d'autorisation.

Personnaliser une liste d'autorisation

AOSP inclut une implémentation de liste d'autorisation que vous pouvez personnaliser selon vos besoins, comme la liste d'autorisation des 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>

Trouver les autorisations manquantes

Pour trouver les autorisations manquantes, installez votre application signée pour la plate-forme et inspectez les journaux de l'appareil pour trouver les messages d'avertissement au format suivant :

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 les builds non débogables tels que les builds user.