Plattformsignierte Apps sind Apps, die dasselbe (oder ein kompatibles) Signaturzertifikat wie das Plattformpaket (android
) verwenden. Eine plattformsignierte App kann eine System-App (auf einer Systemimage-Partition) oder eine Nicht-System-App sein. Berechtigungen für die Plattformsignatur sind Berechtigungen, die vom Plattformpaket definiert werden und auch die Schutzstufe 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 wenig Kontrolle darüber, welche signature
-Berechtigungen für nicht systembezogene Apps mit Plattformsignatur 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 systembezogene App, die mit einer Plattformsignatur signiert ist, nicht der Zulassungsliste für eine Berechtigung für eine Plattformsignatur hinzugefügt wird, verhält sich diese Berechtigung so, als ob die App in nicht debugfähigen Builds nicht mit einer Plattformsignatur signiert wäre.
Zulassungsliste hinzufügen
Sie können Zulassungslisten für Berechtigungen für Apps in einer einzelnen XML-Datei oder in mehreren XML-Dateien im Verzeichnis /etc/permissions
auflisten:
/etc/permissions/signature-permissions-OEM_NAME.xml
/etc/permissions/signature-permissions-DEVICE_NAME.xml
Es gibt keine strengen Regeln für die Organisation von Inhalten. Geräteimplementierer können die Inhaltsstruktur festlegen, sofern die entsprechenden Apps und ihre Berechtigungen auf die Zulassungsliste gesetzt werden.
Zulassungsliste anpassen
AOSP enthält eine Implementierung einer Zulassungsliste, die Sie nach Bedarf anpassen können, ähnlich wie die Zulassungsliste für Berechtigungen mit Sonderzugriff. 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 plattformsignierte App und sehen Sie sich die Geräteprotokolle an. Achten Sie dabei auf Warnmeldungen 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 erteilen, nicht jedoch für nicht debugfähige Builds wie user
-Builds.