Zulassungsliste für Berechtigungen für Signaturen

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.