Android Uyumluluk Tanımı Belgesi (CDD) Güncellenebilir Yazılımı, cihazların SystemUpdatePolicy
sınıfını uygulamasını gerektirir. SystemUpdatePolicy
, varsa cihaz sahibi (DO) uygulamasının sistem güncellemelerinin kurulumunu kontrol etmesine olanak tanır.
Cihaz sahiplerini bilgilendirme
Kablosuz (OTA) istemcinin, bir sistem API'sini kullanarak cihaz sahibi uygulamalarına gelen OTA güncellemeleri hakkında bilgi vermesi gerekir. OTA istemcisinin, OTA güncellemesi ilk kez kullanıma sunulduğunda bir zaman damgası kaydı da içermesi gerekir. OTA istemcileri, cihaz sahibi uygulamalarını bilgilendirmek için DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch)
çağrısını yapabilir. OTA istemcisi bir güncellemenin güvenlik yaması olup olmadığını bilmiyorsa OTA istemcisi DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
kullanmaya geri dönebilir.
Şu anda bir güncelleme mevcut değilse, OTA istemcisi bunu updateReceivedTime
bağımsız değişkenini -1
olarak ayarlayarak bildirir. OTA istemcisi OTA sunucusunu yokladığında veya istemciye bir OTA gönderildiğinde bildirim göndermenizi öneririz. Ayrıca bildirimleri daha sık gönderebilirsiniz.
Sistem güncelleme politikası
Android 9, cihaz sahiplerinin OTA güncellemelerini 90 güne kadar ertelemesine izin vererek cihaz sahiplerinin güncellemeleri kontrol etme yeteneğini geliştiriyor. Özel cihaz (önceden COSU olarak adlandırılıyordu) çözümlerine odaklanan bu özellik, sahiplerin tatil gibi kritik dönemlerde cihazlarda çalışan işletim sistemi sürümünü duraklatmalarına olanak tanır.
CDD'ye uymak için OTA müşterisinin davranışsal politikalar uygulaması gerekir. DO, cihaz sistemi güncelleme alt sistemlerinin uyması gereken aşağıdaki politikaları belirleyebilir:
Cihaz sahipleri ayrıca tatiller veya diğer yoğun zamanlar gibi kritik dönemlerde işletim sistemi sürümünü donduracak dondurma dönemleri (Android 9 veya sonraki sürümlerde) ayarlayabilir . Sistem, donma döneminde OTA güncellemelerini yüklemez. SystemUpdatePolicy.InstallationOption
kullanmanızı öneririz (aşağıdaki bölüme bakın), ancak OTA istemcisi ayrıca cihazın donma döneminde olup olmadığını kontrol etmek için SystemUpdatePolicy.getFreezePeriods()
de çağırabilir.
Kurulum seçeneklerini uygulama
Android 9, sistem güncelleme istemcileri için tasarlanmış bir @SystemApi, SystemUpdatePolicy.InstallationOption
sunar. SystemUpdatePolicy.InstallationOption
ilkeler ve dondurma dönemleri için sarmalayıcı sınıf görevi görür. Bir yükleme seçeneği, müşterilere, gelen sistem güncelleştirmeleri karşısında nasıl davranacaklarını ve mevcut sistem güncelleştirme ilkesi veya belirlenebilecek herhangi bir dondurma süresi göz önüne alındığında, bu eylemin ne kadar süreyle geçerli olacağını söyler. Kurulum seçeneği aşağıdakilerden biri olabilir:
-
TYPE_INSTALL_AUTOMATIC
- Gelen sistem güncellemeleri, kullanılabilir hale gelir gelmez hemen ve kullanıcı müdahalesine gerek kalmadan yüklenir. Cihaz otomatik olarak yeniden başlatılır. -
TYPE_POSTPONE
- Gelen sistem güncellemeleri maksimum 30 gün gecikebilir. Kullanıcılar bir güncellemeyi manuel olarak yükleyemez. Cihaz üreticileri güvenlik yamalarını engelleyip engellememeyi seçebilir. -
TYPE_PAUSE
- Gelen sistem güncellemeleri bir sonraki duyuruya kadar süresiz olarak ertelenebilir. Kullanıcılar bir güncellemeyi manuel olarak yükleyemez.TYPE_PAUSE
, güvenlik yamaları dahil tüm güncellemeleri geciktirir.
Sistem güncelleme istemcileri, SystemUpdatePolicy.InstallationOption
SystemUpdatePolicy.getInstallationOptionAt(long when )
kullanarak sorgulayabilir; when , yükleme seçeneğinin Epoch'tan bu yana milisaniye cinsinden sorgulandığı süreyi temsil eder. SystemUpdatePolicy.getInstallationOptionAt(long when )
yöntemini kullanarak, sistem güncelleme istemcileri, geçerli süre dolana kadar döndürülen seçenek üzerinde işlem yapabilir. Döndürülen seçeneğin süresi dolduktan sonra istemci, en son seçenek için yeni bir zaman damgası kullanarak başka bir sorgu yapabilir.
Politikanın tamamının güncellenmesi durumunda, sistem güncelleme istemcisi DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED
yayınlarını dinlemelidir.
TYPE_PAUSE
politikasını doğrulama
TYPE_PAUSE
seçeneğinin bir OTA sisteminde çalıştığını manuel olarak doğrulayabilirsiniz.
TYPE_PAUSE
politikası yürürlükte
TYPE_PAUSE
politikasının çalıştığını doğrulamak için:
- Otomatik bir politika ayarlayın ve
TYPE_PAUSE
öğesini belirtin. - Sistem saati duraklatma dönemindeyken bir OTA güncellemesi yapın.
- Cihazın OTA güncellemesini almadığını ve kullanıcının güncellemeyi manuel olarak yükleyemediğini doğrulayın.
- Cihaz bir A/B cihazıysa cihazı yeniden başlatın ve yeniden başlatmanın güncellemenin otomatik kurulumunu tetiklemediğini doğrulayın.
TYPE_PAUSE
politikasının süresi doldu
Süresi dolmuş bir TYPE_PAUSE
politikasının çalıştığını doğrulamak için:
- Otomatik bir politika ayarlayın ve
TYPE_PAUSE
öğesini belirtin. - Sistem saati duraklatma dönemindeyken bir OTA güncellemesi yapın.
- Duraklatma süresinin sona ermesini bekleyin.
- Cihazın otomatik olarak yeniden başlatıldığını ve yeniden başlatma sonrasında OTA güncellemesinin alındığını doğrulayın.