Pembaruan OTA Perusahaan

Perangkat Lunak yang Dapat Diperbarui Dokumen Definisi Kompatibilitas Android (CDD) memerlukan perangkat untuk mengimplementasikan kelas SystemUpdatePolicy . SystemUpdatePolicy memungkinkan aplikasi pemilik perangkat (DO), jika ada, mengontrol pemasangan pembaruan sistem.

Memberi tahu pemilik perangkat

Klien over-the-air (OTA) harus memberi tahu aplikasi pemilik perangkat tentang pembaruan OTA yang masuk menggunakan API sistem. Klien OTA juga harus menyertakan rekaman stempel waktu saat pembaruan 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 pembaruan adalah patch keamanan, klien OTA dapat kembali menggunakan DevicePolicyManager.notifyPendingSystemUpdate(long updateReceivedTime) .

Jika pembaruan saat ini tidak tersedia, klien OTA melaporkannya dengan menyetel argumen updateReceivedTime ke -1 . Kami merekomendasikan pengiriman pemberitahuan setiap kali klien OTA melakukan polling ke server OTA, atau ketika OTA didorong ke klien. Anda juga dapat mengirimkan notifikasi lebih sering.

Kebijakan pembaruan sistem

Android 9 meningkatkan kemampuan pemilik perangkat untuk mengontrol pembaruan dengan mengizinkan pemilik perangkat untuk menunda pembaruan OTA hingga 90 hari. Berfokus pada solusi perangkat khusus (sebelumnya disebut COSU), fitur ini memungkinkan pemilik menjeda versi OS yang berjalan pada perangkat selama periode kritis, seperti hari libur.

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

Pemilik perangkat juga dapat menyetel periode pembekuan (di Android 9 atau lebih baru) yang membekukan versi OS selama periode kritis, seperti hari libur atau waktu sibuk lainnya. Sistem tidak menginstal pembaruan OTA selama periode pembekuan. Kami merekomendasikan menggunakan SystemUpdatePolicy.InstallationOption (lihat bagian berikut), namun klien OTA juga dapat memanggil SystemUpdatePolicy.getFreezePeriods() untuk memeriksa apakah perangkat berada dalam periode pembekuan.

Menerapkan opsi instalasi

Android 9 memperkenalkan @SystemApi, SystemUpdatePolicy.InstallationOption , yang dirancang untuk klien pembaruan sistem. SystemUpdatePolicy.InstallationOption berfungsi sebagai kelas pembungkus untuk kebijakan dan periode pembekuan. Opsi penginstalan memberi tahu klien cara bertindak pada pembaruan sistem yang masuk dan berapa lama tindakan itu valid, mengingat kebijakan pembaruan sistem saat ini atau periode pembekuan apa pun yang mungkin disetel. Opsi penginstalan dapat berupa salah satu dari berikut ini:

  • TYPE_INSTALL_AUTOMATIC - Pembaruan sistem yang masuk segera diinstal dan tanpa campur tangan pengguna segera setelah tersedia. Perangkat melakukan boot ulang secara otomatis.
  • TYPE_POSTPONE - Pembaruan sistem yang masuk dapat ditunda selama maksimal 30 hari. Pengguna tidak dapat menginstal pembaruan secara manual. Produsen perangkat dapat memilih apakah akan memblokir patch keamanan atau tidak.
  • TYPE_PAUSE - Pembaruan sistem yang masuk dapat ditunda tanpa batas waktu hingga pemberitahuan lebih lanjut. Pengguna tidak dapat menginstal pembaruan secara manual. TYPE_PAUSE menunda semua pembaruan, termasuk patch keamanan.

Klien pembaruan sistem dapat meminta SystemUpdatePolicy.InstallationOption menggunakan SystemUpdatePolicy.getInstallationOptionAt(long when ) , di mana when menyatakan waktu opsi penginstalan ditanyakan dalam jumlah milidetik sejak Epoch. Menggunakan metode SystemUpdatePolicy.getInstallationOptionAt(long when ) , klien pembaruan sistem dapat bertindak berdasarkan opsi yang dikembalikan hingga waktu efektif berlalu. Setelah opsi yang dikembalikan berakhir, klien dapat membuat kueri lain, menggunakan stempel waktu baru, untuk opsi terbaru.

Klien pembaruan sistem harus mendengarkan siaran DevicePolicyManager.ACTION_SYSTEM_UPDATE_POLICY_CHANGED jika seluruh kebijakan diperbarui.

Memvalidasi kebijakan TYPE_PAUSE

Anda dapat secara manual memvalidasi opsi TYPE_PAUSE berfungsi pada sistem OTA.

Kebijakan TYPE_PAUSE berlaku

Untuk memvalidasi kebijakan TYPE_PAUSE berfungsi:

  1. Tetapkan kebijakan otomatis dan tentukan TYPE_PAUSE .
  2. Saat jam sistem dalam periode jeda, dorong pembaruan OTA.
  3. Pastikan perangkat tidak mengambil pembaruan OTA dan pengguna tidak dapat menginstal pembaruan secara manual.
  4. Jika perangkat adalah perangkat A/B, reboot perangkat dan verifikasi bahwa reboot tidak memicu penginstalan otomatis pembaruan.

Kebijakan TYPE_PAUSE telah kedaluwarsa

Untuk memvalidasi kebijakan TYPE_PAUSE yang kedaluwarsa berfungsi:

  1. Tetapkan kebijakan otomatis dan tentukan TYPE_PAUSE .
  2. Saat jam sistem dalam periode jeda, dorong pembaruan OTA.
  3. Tunggu jeda hingga periode berakhir.
  4. Verifikasi perangkat secara otomatis reboot dan pembaruan OTA diambil setelah reboot.