Zulassungsliste für Berechtigungen für Signaturen

Plattformsignierte Apps sind Apps, die dasselbe (oder ein kompatibles) Signaturzertifikat wie das Plattformpaket (android) verwenden. Eine plattformsignierte App kann eine System-App (auf einer System-Image-Partition) oder eine Nicht-System-App sein. Plattformsignaturberechtigungen sind Berechtigungen, die vom Plattformpaket definiert werden und auch die Schutzstufe signature haben. Debugfähige Builds sind Builds, bei denen android.os.Build.isDebuggable() den Wert true zurückgibt, z. B. userdebug- oder eng-Builds.

In der Vergangenheit hatten Gerätehersteller wenig Kontrolle darüber, welche signature-Berechtigungen für plattformsignierte Nicht-System-Apps gewährt werden konnten. Ab Android 15 können Hersteller plattformsignierte Berechtigungen explizit in den XML-Dateien der Systemkonfiguration im Verzeichnis /etc/permissions gewähren. Wenn eine plattformsignierte Nicht-System-App nicht der Zulassungsliste für eine plattformsignierte Berechtigung hinzugefügt wird, verhält sich diese Berechtigung so, als wäre die App bei nicht debugfähigen Builds nicht plattformsigniert.

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 strenge Regel für die Organisation von Inhalten. Geräteimplementierer können die Inhaltsstruktur festlegen, solange die entsprechenden Apps und ihre Berechtigungen der Zulassungsliste hinzugefügt werden.

Zulassungsliste anpassen

AOSP enthält eine Implementierung der Zulassungsliste, die Sie nach Bedarf anpassen können, ähnlich wie die Zulassungsliste für Berechtigungen mit erhöhten Rechten. 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 prüfen Sie die Geräteprotokolle 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 gewähren, aber nicht für nicht debugfähige Builds wie user-Builds.