Zulassungsliste für Signaturberechtigungen

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 das Schutzniveau signature haben. Debug-fähige Builds sind Builds, deren android.os.Build.isDebuggable() true zurückgibt, z. B. userdebug- oder eng-Builds.

In der Vergangenheit hatten Gerätehersteller wenig Kontrolle darüber, welche Plattform-signature-Berechtigungen plattformsignierten Nicht-System-Apps gewährt werden konnten. Ab Android 15 können Hersteller in den XML-Dateien zur Systemkonfiguration im Verzeichnis /etc/permissions explizit Berechtigungen für Plattformsignaturen erteilen. Wenn eine von der Plattform signierte Nichtsystem-App nicht auf die Zulassungsliste für eine Plattformsignaturberechtigung gesetzt wird, verhält sich diese Berechtigung so, als wäre die App nicht auf der Plattform in nicht debugfähigen Builds signiert.

Zulassungsliste hinzufügen

Sie können Zulassungslisten für Berechtigungen für Anwendungen in einer einzelnen XML-Datei oder in mehreren XML-Dateien im Verzeichnis frameworks/base/etc/permissions auflisten:

  • /etc/permissions/signature-permissions-OEM_NAME.xml
  • /etc/permissions/signature-permissions-DEVICE_NAME.xml

Es gibt keine strenge Regel zur Strukturierung von Inhalten. Geräteimplementierungen können die Inhaltsstruktur festlegen, solange die entsprechenden Apps und ihre Berechtigungen der Zulassungsliste hinzugefügt wurden.

Zulassungsliste anpassen

AOSP enthält eine Zulassungslistenimplementierung, die Sie nach Bedarf anpassen können, ähnlich wie die Zulassungsliste für privilegierte 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 suchen

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 erteilen, jedoch nicht für nicht debugfähige Builds wie user-Builds.