Plattformsignierte Zulassungsliste für freigegebene UIDs

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. Plattformsignierte freigegebene UIDs sind freigegebene UIDs (android:sharedUserId), die plattformsignierte Apps enthalten. Debug-fähige Builds sind Builds, android.os.Build.isDebuggable() gibt true zurück, z. B. userdebug oder eng baut.

In der Vergangenheit hatten Gerätehersteller wenig Kontrolle darüber, auf welcher Plattform systemfremden Apps möglicherweise einer von der Plattform signierten freigegebenen UID hinzugefügt werden. In Android starten 15 können Hersteller explizit plattformsignierte plattformunabhängigen freigegebenen UIDs in der Systemkonfiguration XML-Dateien im Verzeichnis /etc/permissions. Wenn ein plattformsigniertes Die App wurde nicht auf die Zulassungsliste für eine von der Plattform signierte gemeinsame UID gesetzt und die App versucht weiterhin, der von der Plattform signierten freigegebenen UID beizutreten (mit android:sharedUserId). in seinem Manifest), dass die App nicht in Builds installiert werden kann, die nicht debuggen können.

Zulassungsliste hinzufügen

Sie können Zulassungslisten für Apps in einer einzelnen XML-Datei oder in mehreren XML-Dateien auflisten. ähnlich wie 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>

Fehlende Zulassungsliste suchen

Wenn Sie einen fehlenden Zulassungslisteneintrag finden möchten, versuchen Sie, Ihr plattformsigniertes Nichtsystem zu installieren App auf einem nicht Debug-fähigen Build und prüfen Sie, ob sie noch installiert werden kann. Falls nicht, Geräteprotokolle für folgendes Format von Warnmeldungen prüfen:

Non-preload app {PACKAGE_NAME} signed with platform signature and joining shared uid: {SHARED_UID_NAME}