Update OTA perusahaan

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.