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
.