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.
Udostępniane identyfikatory UID podpisane przez platformę to udostępniane identyfikatory UID (android:sharedUserId
), które
zawierają aplikacje podpisane przez platformę. Kompilacje z możliwością debugowania to kompilacje, których
android.os.Build.isDebuggable()
zwraca wartość true
, np. userdebug
lub eng
do tworzenia kampanii.
Dawniej producenci urządzeń mieli niewielką kontrolę nad tym, które platformy
aplikacje niesystemowe mogą dołączyć do wspólnego identyfikatora UID podpisanego przez platformę. Pierwsze kroki na Androidzie
15, producenci mogą bezpośrednio zezwalać na podpisywanie przez platformę.
aplikacje niesystemowe, aby dołączać identyfikatory UID podpisane przez platformę w konfiguracji systemu
XML w katalogu /etc/permissions
. Jeśli obiekt niepodpisany przez platformę
aplikacji nie zostanie dodana do listy dozwolonych w przypadku udostępnianego identyfikatora UID podpisanego przez platformę,
nadal próbuje dołączyć do udostępnianego identyfikatora UID podpisanego przez platformę (z android:sharedUserId
w pliku manifestu) danej aplikacji nie można zainstalować w kompilacjach, których nie można debugować.
Dodaj listę dozwolonych
Możesz utworzyć listę dozwolonych aplikacji w pojedynczym pliku XML lub w wielu plikach XML,
podobne do
frameworks/base/data/etc/package-shareduid-allowlist.xml
:
<!--
This XML defines an allowlist for packages that want to join a particular shared-uid.
If a non-system package that is signed with platform signature, is trying to join a particular
shared-uid, and not in this list, the installation will fail.
- The "package" XML attribute refers to the app's package name.
- The "shareduid" XML attribute refers to the shared uid name.
-->
<config>
<allow-package-shareduid package="android.test.settings" shareduid="android.uid.system" />
</config>
Znajdowanie brakującej listy dozwolonych
Aby znaleźć brakujący wpis na liście dozwolonych, spróbuj zainstalować podpisany przez platformę system inny niż system w kompilacji, której nie można debugować, i sprawdź, czy nadal można ją zainstalować. Jeśli nie, może sprawdzać dzienniki urządzenia pod kątem tego formatu komunikatów ostrzegawczych:
Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}