Update OTA Enterprise

Software yang Dapat Diupdate di Dokumen Definisi Kompatibilitas (CDD) Android mewajibkan perangkat menerapkan class SystemUpdatePolicy. SystemUpdatePolicy memungkinkan aplikasi pemilik perangkat (DO), jika ada, mengontrol penginstalan update sistem.

Memberi tahu pemilik perangkat

Klien over-the-air (OTA) harus memberi tahu aplikasi pemilik perangkat tentang update OTA masuk menggunakan API sistem. Klien OTA juga harus menyertakan stempel waktu yang mencatat kapan update OTA pertama kali tersedia. Klien OTA dapat memanggil DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime, boolean isSecurityPatch) untuk memberi tahu aplikasi pemilik perangkat. Jika klien OTA tidak mengetahui apakah update adalah patch keamanan, klien OTA dapat kembali menggunakan DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime).

Jika update saat ini tidak tersedia, klien OTA melaporkannya dengan menetapkan argumen updateReceivedTime ke -1. Sebaiknya kirim notifikasi setiap kali klien OTA melakukan polling ke server OTA, atau saat OTA didorong ke klien. Anda juga dapat mengirimkan notifikasi lebih sering.

Kebijakan update sistem

Android 9 meningkatkan kemampuan pemilik perangkat untuk mengontrol update dengan mengizinkan pemilik perangkat menunda update OTA hingga 90 hari. Dengan berfokus pada solusi perangkat khusus (sebelumnya disebut COSU), fitur ini memungkinkan pemilik menjeda versi OS yang berjalan di perangkat selama periode penting, seperti liburan.

Untuk mematuhi CDD, klien OTA harus menerapkan kebijakan perilaku. DO dapat menetapkan kebijakan berikut, yang harus dipatuhi oleh subsistem update sistem perangkat:

Pemilik perangkat juga dapat menetapkan periode pembekuan (di Android 9 atau yang lebih baru) yang membekukan versi OS selama periode penting, seperti hari libur atau waktu sibuk lainnya. Sistem tidak menginstal update OTA selama periode pembekuan. Sebaiknya gunakan SystemUpdatePolicy.InstallationOption (lihat bagian berikutnya), tetapi klien OTA juga dapat memanggil SystemUpdatePolicy.getFreezePeriods() untuk memeriksa apakah perangkat berada dalam periode pembekuan.