Plattformsignierte Apps sind Apps, die dasselbe (oder ein kompatibles) Signaturzertifikat wie das Plattformpaket (android
) haben. Eine platformsignierte App kann eine System-App (auf einer System-Image-Partition) oder eine Nicht-System-App sein. Berechtigungen für Plattformsignaturen sind vom Plattformpaket definierte Berechtigungen, die auch die Schutzebene signature
haben. Debugfähige Builds sind Builds, deren android.os.Build.isDebuggable()
true
zurückgibt, z. B. userdebug
- oder eng
-Builds.
Bisher hatten Gerätehersteller nur wenig Kontrolle darüber, welche Plattformsignature
-Berechtigungen Plattform signierten nicht systeminternen Apps gewährt werden konnten.
Ab Android 15 können Hersteller in den XML-Dateien der Systemkonfiguration im Verzeichnis /etc/permissions
explizit Berechtigungen für Plattformsignaturen gewähren. Wenn eine nicht systemeigene App, die von der Plattform signiert wurde, nicht der Zulassungsliste für eine Berechtigung für die Plattformsignatur hinzugefügt wird, wirkt sich diese Berechtigung so aus, als wäre die App in nicht debugbaren Builds nicht von der Plattform signiert.
Zulassungsliste hinzufügen
Sie können Berechtigungs-Zulassungslisten für Apps in einer einzelnen XML-Datei oder in mehreren XML-Dateien im Verzeichnis frameworks/base/etc/permissions
angeben:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
Für die Organisation von Inhalten gibt es keine strikte Regel. Geräteimplementierer können die Inhaltsstruktur festlegen, sofern die entsprechenden Apps und ihre Berechtigungen der Zulassungsliste hinzugefügt werden.
Zulassungsliste anpassen
AOSP enthält eine Zulassungsliste, die Sie nach Bedarf anpassen können, ähnlich wie die Zulassungsliste für Berechtigungen mit erhöhten Berechtigungen. Beispiel:
<!--
~ 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>
Fehlende Berechtigungen finden
Wenn Sie fehlende Berechtigungen finden möchten, installieren Sie Ihre von der Plattform signierte App und prüfen Sie die Geräteprotokolle auf Warnungen im folgenden Format:
Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist
Das System kann die Berechtigung weiterhin für debugfähige Builds gewähren, aber nicht für nicht debugfähige Builds wie user
-Builds.