Zulassungsliste für Signaturberechtigungen

Plattformsignierte Apps sind Apps mit denselben (oder kompatiblen) Signaturen Zertifikat mit dem Plattformpaket (android). Eine von der Plattform signierte App eine System-App (die sich auf einer System-Image-Partition befindet) oder eine nicht systemeigene App. Plattformsignaturberechtigungen sind vom Plattformpaket definierte Berechtigungen die auch das Schutzniveau signature haben. Debug-fähige Builds sind Builds dessen 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 Berechtigungen vom Typ „signature“ konnten für von der Plattform signierte Apps außerhalb des Systems gewährt werden. Ab Android 15 können Hersteller explizit Sie müssen Berechtigungen für Plattformsignaturen in den XML-Dateien zur Systemkonfiguration gewähren. das Verzeichnis /etc/permissions. Wenn eine von der Plattform signierte Nichtsystem-App nicht auf die Zulassungsliste für eine Plattformsignaturberechtigung gesetzt haben, als sei die App nicht auf der Plattform bei nicht Debug-fähigen Builds signiert.

Zulassungsliste hinzufügen

Sie können Zulassungslisten für Berechtigungen für Apps in einer einzelnen XML-Datei oder in mehreren XML-Dateien, die sich im Verzeichnis frameworks/base/etc/permissions befinden:

  • /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 festgelegt werden, solange die entsprechenden Apps und ihre Berechtigungen werden der Zulassungsliste hinzugefügt.

Zulassungsliste anpassen

AOSP umfasst eine Zulassungslisten-Implementierung, die Sie nach Bedarf anpassen können, ähnlich wie die Zulassungsliste für privilegierte Berechtigungen Für 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

Um fehlende Berechtigungen zu finden, installiere die von der Plattform signierte App und prüfe das Gerät Protokolle für das folgende Format von Warnmeldungen:

Signature permission {PERMISSION_NAME} for package {PACKAGE_NAME} ({PACKAGE_PATH}) not in signature permission allowlist

Das System kann zwar die Berechtigung für debugfähige Builds erteilen, jedoch nicht für Nicht Debug-fähige Builds wie user-Builds