Les applications signées par la plate-forme sont des applications partageant une signature identique (ou 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 UID partagés signés par la plate-forme sont des UID partagés (android:sharedUserId
) :
qui contiennent des applications signées par la plate-forme. Les builds débogables sont des builds
android.os.Build.isDebuggable()
renvoie true
, par exemple userdebug
ou eng
.
compilations.
Auparavant, les fabricants d'appareils avaient peu de contrôle sur la plate-forme signée.
les applications non système peuvent rejoindre
un UID partagé signé par la plateforme. À partir d'Android
15, les fabricants peuvent autoriser explicitement les certificats
des applications non système à rejoindre des UID partagés signés par la plate-forme dans la configuration système
Fichiers XML dans le répertoire /etc/permissions
. Si une plate-forme non système
l'application n'est pas ajoutée à la liste d'autorisation pour un UID partagé signé par la plate-forme, et l'application
tente toujours de rejoindre l'UID partagé signé par la plate-forme (avec android:sharedUserId
)
dans son fichier manifeste), cette application ne peut pas être installée sur des versions non débogables.
Ajouter une liste d'autorisation
Vous pouvez lister les listes d'autorisation d'applications dans un ou plusieurs fichiers XML.
similaire à
frameworks/base/data/etc/package-shareduid-allowlist.xml
:
<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.
- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
-->
<config>
<allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>
Rechercher la liste d'autorisation manquante
Pour trouver une entrée de liste d'autorisation manquante, essayez d'installer votre système non-système signé par la plate-forme sur une version non débogable et vérifiez si elle peut toujours être installée. Sinon, vous peut inspecter les journaux de l'appareil à la recherche du format de message d'avertissement suivant:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}