Software
Updatable Compatibility Definition Document (CDD) Android
mengharuskan 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 yang masuk menggunakan API sistem. Klien OTA juga harus
menyertakan rekaman stempel waktu saat 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 tahu apakah update
adalah patch keamanan, klien OTA dapat kembali menggunakan
DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime)
.
Jika update saat ini tidak tersedia, klien OTA akan melaporkannya dengan
menetapkan argumen updateReceivedTime
ke -1
.
Sebaiknya kirim notifikasi setiap kali klien OTA melakukan polling terhadap
server OTA, atau saat OTA dikirim ke klien. Anda juga dapat mengirim
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 hari libur.
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 berikut), tetapi klien OTA juga dapat memanggil
SystemUpdatePolicy.getFreezePeriods()
untuk memeriksa apakah perangkat berada dalam periode pembekuan.