Lista dozwolonych udostępnianych identyfikatorów UID podpisanych przez platformę

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}