Bir uygulama bir mağaza veya yükleyici tarafından yüklendiğinde, mağaza veya yükleyici "kayıtlı yükleyici" olarak kabul edilir. Bu, uygulamanın son yükleyicisi anlamına gelir. Android 14'ten önce Android, başka bir mağazanın veya uygulama yükleyicisinin kayıtlı yükleyici olmasına ve kullanıcıyı bilgilendirmeden uygulamayı güncellemesine izin veriyordu.
Android 14'te, bir uygulamanın ilk yükleyicisi kendisini "güncelleme sahibi" olarak tanımlayabilir ve uygulamadaki güncellemeleri sahiplenebilir. Başka bir yükleyici uygulamayı güncellemeye çalışırsa kullanıcıya, devam etmeden önce yeni güncellemeyi onaylama fırsatı verilir.
Sahipliği güncellemek için paketleri etkinleştirme
Bir mağazanın veya yükleyicinin uygulama paketine sahip olduğunu beyan etmek için her paketin sysconfig
XML'ine aşağıdaki gibi update-ownership
etiketini ekleyin:
<update-ownership package="com.example.application" installer="com.example.installer" />
Bu örnekte com.example.application
sahip olunacak uygulama paketidir ve
com.example.installer
, paketin sahibi. Bir paket etkinleştirildiğinde
diğer özel mağazaların veya yükleyicilerin sahipliği güncellemek için
Uygulamayı güncellemek için sahibi güncelleme işlemini gerçekleştirme ve kullanıcı rızası alma.
Paketleri sahiplik değişikliklerini devre dışı bırakma
APK'da bir engellenenler listesi sağlayarak mağazanızın veya yükleyicinizin, paketlerin bir alt kümesini güncelleme sahibi değişikliklerinden hariç tutmasını sağlayabilirsiniz. Bir paket ekleyerek Bu listede hiçbir mağaza veya yükleyici, paketin sahipliğini güncelleme isteğinde bulunamaz.
Paketlerin başka bir mağaza veya yükleyici tarafından güncellenememesini tercih etmek için:
Aşağıdaki özelliği orijinal mağazaya veya yükleyicinin sayfasına ekleyin:
AndroidManifest.xml
dosyası:<application …> <property android:name="android.app.PROPERTY_LEGACY_UPDATE_OWNERSHIP_DENYLIST" android:resource="@xml/legacyOwnershipDenylist" /> </application>
Bu örnekte,
legacyOwnershipDenylist
adlı bir XML engellenenler listesi referans gösterilmektedir.Aşağıdaki biçime sahip ham XML kaynağı olarak bir ret listesi oluşturun:
<deny-ownership>com.example.app1</deny-ownership> <deny-ownership>com.example.app2</deny-ownership>
Bir mağaza veya yükleyici, ret listesindeki bir paketin sahipliğini isterse sahiplik verilmeyecek ve paket hâlâ yüklü olsa da kullanılamayacak herhangi bir yükleyiciye ait. Ayrıca yükleyiciden bağımsız olarak, ret listesinin sahibi olamaz.
Bu listedeki paket grubu, yükleyicinin güncellenmesiyle değişebilir Listeyi sağlayan APK. Şu özelliklere sahip bir paket için ayarlanmış herhangi bir sahiplik: ardından gelen reddetme listesine eklenen yükleyici, yükleme işlemini tamamlamaya güncellendi. Bu nedenle, reddedilenler listesindeki uygulama paketinin sonraki güncellemeleri için kullanıcı etkileşimi gerekmez.
Güncelleme sahibini yönetme ve kullanıcı izni alma
Android 14'te, bir mağaza veya uygulama yükleyici android.permission.INSTALL_PACKAGES
iznine sahip olsa bile güncellemeleri başka bir mağazaya veya yükleyiciye ait olan bir uygulamayı güncellemek istiyorsa STATUS_PENDING_USER_ACTION
durumunu yönetmesi gerekir.
InstallAPKSessionApi.java
örnek uygulamasında STATUS_PENDING_USER_ACTION
'ın nasıl kullanılacağı da gösterilmektedir.
Önyüklenmiş uygulamaların sahipliğini belirleme
Önceden yüklenmiş uygulamaların sahibi genellikle belirli bir yükleyici değildir. Bunun yerine, önceden yüklenmiş uygulamalara Sahiplik bilgilerini güncellemek için paketleri etkinleştirme bölümünde gösterildiği gibi sistem yapılandırması kullanılarak yeni bir sahip atanır.