Update OTA

Secara mandiri, Glass Enterprise tidak dilengkapi untuk melakukan update Over The Air (OTA). Namun, Anda dapat mengonfigurasi update OTA dasar. Fungsi update OTA EE2 memberi pemilik perangkat kontrol penuh atas update Over the Air (OTA) sebagai berikut:

  • Untuk mengontrol tempat penyimpanan update.
  • Untuk mengontrol kapan update dilakukan.
  • Untuk mengontrol build target update.

Konfigurasi

Untuk mengizinkan update OTA di perangkat EE2, Anda memerlukan konfigurasi sisi klien dan sisi server.

Konfigurasi sisi server

Anda perlu menghosting file update OTA untuk didownload di server yang dapat diakses di jaringan Anda. File update harus didownload dari halaman System images.

Anda juga perlu menghosting file JSON, yang mendorong alur update. Formatnya hanya sebagai contoh updater sample.json. File ini berisi informasi seperti ukuran payload, panjang biner, dan metadata lain yang diperlukan mesin update untuk menerima biner OTA.

Konfigurasi sisi klien

Agar perangkat dapat memeriksa update OTA, Anda perlu menyiapkan URL OTA dan interval polling. Anda dapat menggunakan intent untuk memulai aktivitas yang menyiapkannya. Nama aktivitasnya adalah com.google.android.glass.otaservice/.OtaSettingsActivity.

Ada 2 tindakan yang didukung:

  • com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION
    • URL file metadata JSON yang disurvei dan diperiksa oleh daemon.
    • Tambahkan string dengan kunci berikut: com.google.android.glass.otaservice.UPDATE_LOCATION
  • com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION
    • Interval saat daemon OTA bangun untuk melakukan polling dalam milidetik.
    • Tambahkan nomor dengan kunci berikut: com.google.android.glass.otaservice.UPDATE_FREQUENCY
    • Intent ini juga langsung memulai pemeriksaan OTA jika belum ada yang berjalan.
    • Diperlukan angka yang lebih besar dari 900.000 milidetik
    • Jika OTA sudah berlangsung, interval frekuensi diperbarui setelah pemeriksaan saat ini selesai. Wajib diisi, jika tidak, mode Istirahatkan Android dapat mengganggu layanan.

Intent dapat dikirim oleh startActivityForResult. Respons dikirim kembali ke callback onActivityResult dengan RESULT_OK saat berhasil atau RESULT_CANCELLED jika gagal. Kemudian, pesan disalurkan ke log perangkat untuk tujuan pemecahan masalah.

Intent tersebut juga dapat dikirim oleh perintah adb sebagai berikut:

adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \
--es com.google.android.glass.otaservice.UPDATE_LOCATION "some_URL_for_json_file" \
-n com.google.android.glass.otaservice/.OtaSettingsActivity
adb shell am start \
-a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \
--el com.google.android.glass.otaservice.UPDATE_FREQUENCY 1800000 \
-n com.google.android.glass.otaservice/.OtaSettingsActivity

Daemon OTA berjalan sebagai JobService setiap 15 menit atau lebih, bergantung pada setelan frekuensi. JobService berjalan saat booting dan terus berjalan hingga payload yang diperbarui diterima dan diverifikasi.

Layanan latar belakang hanya memeriksa apakah Wi-Fi sedang online dan terhubung. Namun, Wi-Fi tidak perlu memiliki akses internet, cukup LAN.

Semua pemrosesan berlangsung di latar belakang. Tidak ada input pengguna yang diperlukan selama pemrosesan. Notifikasi akan muncul di panel samping notifikasi dan OS akan otomatis diupdate saat mulai ulang berikutnya.

Memperbarui Langkah

Ikuti langkah-langkah berikut untuk menguji update OTA:

  1. Download dan flash perangkat secara manual dengan update saat ini.
  2. Kartu Info perangkat Pengaturan Kaca akan menampilkan: update saat ini.
  3. Menyambungkan ke jaringan Wi-Fi.
  4. Jalankan perintah adb agar mengarah ke file json Anda untuk mengupdate ke update berikutnya:

    adb shell am start \
    -a com.google.android.glass.otaservice.UPDATE_LOCATION_ACTION \
    --es com.google.android.glass.otaservice.UPDATE_LOCATION "your_json_file_location" \
    -n com.google.android.glass.otaservice/.OtaSettingsActivity
    adb shell am start \
    -a com.google.android.glass.otaservice.UPDATE_FREQUENCY_ACTION \
    --el com.google.android.glass.otaservice.UPDATE_FREQUENCY 900000 \
    -n com.google.android.glass.otaservice/.OtaSettingsActivity
  5. Notifikasi mengenai OTA yang sedang berlangsung muncul
  6. Notifikasi OTA menghilang
  7. Pada booting perangkat manual berikutnya, perangkat seharusnya telah diupdate dan kartu info perangkat Pengaturan Kaca akan menampilkan: update baru

Alur update

Berikut proses standar yang menjalankan update OTA:

  1. Setelah booting, daemon OTA menjadwalkan eksekusi pertamanya, yang ditentukan oleh interval yang ditentukan. Jika tidak ada interval yang disediakan, setelan defaultnya adalah 15 menit.
  2. Daemon melakukan polling pada server web untuk mendownload file metadata. Jika tidak ada URL yang disediakan, daemon akan keluar dan menunggu hingga interval eksekusi berikutnya.
  3. Daemon menjalankan pemeriksaan awal pada file metadata untuk memastikan bahwa flag yang tepat telah ditetapkan. Jika terjadi error, daemon akan keluar dan mencetak output ke log. Daemon kemudian menunggu hingga eksekusi terjadwal berikutnya.
  4. Daemon membandingkan entri dalam file JSON dengan entri yang diambil dari build saat ini yang berjalan di perangkat. Jika ketidakcocokan terdeteksi untuk entri ini, download OTA akan dimulai. Konten dari file metadata diteruskan ke mesin update AOSP.

    Pembaruan tidak dapat dijeda. Proses ini akan berlanjut hingga berhasil, gagal, atau waktu tunggu habis.

  5. Daemon mendownload paket OTA di latar belakang secara otomatis.
  6. Jika paket OTA didownload dan berhasil diverifikasi, daemon akan berhenti melakukan polling update baru. Setelah memulai ulang, update akan diterapkan. Notifikasi akan muncul untuk memberi tahu pengguna bahwa update akan diterapkan setelah mulai ulang.
  7. Jika download OTA gagal, daemon melakukan polling pada server web setelah interval yang ditentukan berlalu lagi.

Update aplikasi

Update aplikasi di EE2 harus ditangani sebagai update Android standar. Ada dua opsi utama:

  1. Gunakan solusi MDM atau build aplikasi pemilik perangkat Anda sendiri dan update aplikasi secara diam-diam. Anda dapat menggunakan API Android PackageInstaller untuk melakukannya.
  2. Gunakan Android API PackageInstaller langsung dari aplikasi Anda untuk mengupdatenya sendiri. Dalam hal ini, dialog sistem akan muncul.