Kurumsal OTA Güncellemeleri

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:

  1. Otomatik bir politika ayarlayın ve TYPE_PAUSE öğesini belirtin.
  2. Sistem saati duraklatma dönemindeyken bir OTA güncellemesi yapın.
  3. Cihazın OTA güncellemesini almadığını ve kullanıcının güncellemeyi manuel olarak yükleyemediğini doğrulayın.
  4. 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:

  1. Otomatik bir politika ayarlayın ve TYPE_PAUSE öğesini belirtin.
  2. Sistem saati duraklatma dönemindeyken bir OTA güncellemesi yapın.
  3. Duraklatma süresinin sona ermesini bekleyin.
  4. Cihazın otomatik olarak yeniden başlatıldığını ve yeniden başlatma sonrasında OTA güncellemesinin alındığını doğrulayın.