Konfigurowanie i obsługa własności aktualizacji aplikacji

Gdy sklep lub instalator instaluje aplikację, sklep lub instalator uważany za „zarejestrowanego użytkownika” czyli użytkownik, który ostatnio zainstalował aplikację. Przed Androidem 14 system Android zezwalał innemu sklepowi lub instalatorowi aplikacji na instalatora aplikacji i aktualizowanie aplikacji bez powiadamiania użytkownika.

W Androidzie 14 początkowy instalator aplikacji może zadeklarować, że jest właścicielem aktualizacji i aktualizacja aplikacji. Jeśli inny instalator spróbuje zaktualizować aplikację, narzędzie użytkownik ma możliwość zaakceptowania nowej aktualizacji przed jej zastosowaniem.

Wyrażanie zgody na pakiety aktualizacji własności

Aby zadeklarować, że właścicielem pakietu aplikacji jest sklep lub instalator: umieść tag update-ownership w pliku XML sysconfig dla każdego pakietu jako następujące:

<update-ownership package="com.example.application" installer="com.example.installer" />

W tym przykładzie com.example.application to pakiet aplikacji, który należy do Ciebie. com.example.installer jest właścicielem pakietu. Gdy pakiet jest opłacany w celu zaktualizowania własności, inne sklepy z podwyższonymi uprawnieniami lub instalator muszą obsługiwać właściciela aktualizacji i uzyskać zgodę użytkownika na zaktualizowanie aplikacji.

Rezygnowanie ze zmian własności dla pakietów

Możesz poprosić sklep lub instalatora o zrezygnowanie z części pakietów zaktualizuj zmiany właściciela, dodając listę odrzuconych w pliku APK. Poprzez dołączenie pakietu na tej liście żaden sklep ani instalator nie może poprosić o aktualizację własności pakietu.

Aby wyłączyć możliwość aktualizowania pakietów przez inny sklep lub instalatora:

  1. Dodaj tę usługę do pliku w pierwotnym sklepie lub Plik AndroidManifest.xml:

    <application …>
      <property android:name="android.app.PROPERTY_LEGACY_UPDATE_OWNERSHIP_DENYLIST"
                android:resource="@xml/legacyOwnershipDenylist" />
    </application>
    

    Ten przykład odwołuje się do listy odrzuconych w formacie XML o nazwie legacyOwnershipDenylist.

  2. Utwórz listę odrzuconych jako nieprzetworzony zasób XML w tym formacie:

    <deny-ownership>com.example.app1</deny-ownership>
    <deny-ownership>com.example.app2</deny-ownership>
    

Jeśli sklep lub instalator poprosi o prawa własności pakietu z listy odrzuconych, własność nie zostanie przyznana, a pakiet będzie nadal zainstalowany, ale nie zostanie należące do dowolnego instalatora. Ponadto, niezależnie od instalatora, aplikacja na lista odrzuconych nie może należeć do nikogo innego.

Zestaw pakietów na tej liście może się zmienić w wyniku aktualizacji instalatora Plik APK z listą. Wszelkie prawa własności ustawione dla pakietu, który jest wobec listy odrzuconych jest czyszczona, gdy instalator zostanie Zaktualizowano. W związku z tym kolejne aktualizacje pakietu aplikacji na liście odrzuconych nie będą wymagają interakcji użytkownika.

Obsługa właściciela aktualizacji i uzyskiwanie zgody użytkownika

W Androidzie 14 nawet wtedy, gdy sklep lub instalator aplikacji android.permission.INSTALL_PACKAGES, musi jeszcze obsługiwać STATUS_PENDING_USER_ACTION. czy chce zaktualizować aplikację, której aktualizacje są własnością innego sklepu lub instalatora.

Przykładowa aplikacja InstallAPKSessionApi.java również pokazuje, jak obsłużyć STATUS_PENDING_USER_ACTION.

Określanie własności wstępnie załadowanych aplikacji

Wstępnie załadowane aplikacje zwykle nie należą do konkretnego instalatora. Zamiast tego wstępnie załadowane aplikacje mają przypisywane nowego właściciela. Na podstawie konfiguracji systemowej widoczne w sekcji Włączanie aktualizacji własności w pakietach.