Lista dozwolonych uprawnień do podpisu

Aplikacje podpisane przez platformę to aplikacje współdzielące takie samo (lub zgodne) podpisywanie certyfikat z pakietem platformy (android). Aplikacja podpisana przez platformę może być aplikacja systemowa (na partycji obrazu systemowego) lub aplikacja niesystemowa. Uprawnienia do podpisu platformy to uprawnienia zdefiniowane przez pakiet platformy które mają też poziom ochrony signature. Kompilacje z możliwością debugowania są kompilacjami której funkcja android.os.Build.isDebuggable() zwróciła true, na przykład userdebug lub eng kompilacji.

Dawniej producenci urządzeń mieli niewielką kontrolę nad platformą, Aplikacjom niesystemowym, które są podpisane przez platformę, można przyznać signature uprawnienia. Począwszy od Androida 15, producenci mogą wyraźnie przyznaj uprawnienia do podpisu platformy w plikach XML konfiguracji systemu w w katalogu /etc/permissions. Jeśli aplikacja niepodpisana przez platformę nie jest dodano do listy dozwolonych uprawnień do podpisywania platformy, to uprawnienie będzie działać tak, jakby aplikacja nie jest podpisana przez platformę w kompilacjach niemożliwych do debugowania.

Dodaj listę dozwolonych

Listy dozwolonych uprawnień aplikacji możesz wyświetlić w jednym pliku XML lub w wielu Pliki XML w katalogu frameworks/base/etc/permissions:

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

Organizowanie treści nie obejmuje żadnej ścisłej reguły. Implementacje kodu na urządzeniu określić strukturę treści, o ile odpowiednie aplikacje uprawnienia aplikacji są dodawane do listy dozwolonych.

Dostosowywanie listy dozwolonych

AOSP obejmuje wdrożenie z listy dozwolonych, które możesz dostosować do swoich potrzeb. podobne do listy dozwolonych uprawnień z podwyższonymi uprawnieniami. Dla: przykład:

<!--
  ~ 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>

Znajdowanie brakujących uprawnień

Aby znaleźć brakujące uprawnienia, zainstaluj aplikację podpisaną przez platformę i sprawdź urządzenie w dziennikach w formacie ostrzeżeń:

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

System może nadal przyznawać to uprawnienie do kompilacji z możliwością debugowania, ale nie w przypadku kompilacje niemożliwe do debugowania, takie jak kompilacje user.