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:
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
.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.