OTA Berbasis Blok

Anda dapat mengaktifkan pembaruan over-the-air (OTA) berbasis blok untuk perangkat baru yang menjalankan Android 5.0. OTA adalah mekanisme di mana OEM memperbarui partisi sistem perangkat dari jarak jauh:

  • Android 5.0 dan versi yang lebih baru menggunakan pembaruan OTA blok untuk memastikan bahwa setiap perangkat menggunakan partisi yang sama persis. Alih-alih membandingkan file individual dan menghitung patch biner, blok OTA menangani seluruh partisi sebagai satu file dan menghitung satu patch biner, memastikan partisi yang dihasilkan berisi bit yang diinginkan. Ini memungkinkan citra sistem perangkat mencapai status yang sama melalui fastboot atau OTA.
  • Android 4.4 dan versi sebelumnya menggunakan pembaruan OTA file, yang memastikan perangkat berisi konten, izin, dan mode file yang serupa, tetapi mengizinkan metadata seperti stempel waktu dan tata letak penyimpanan yang mendasarinya bervariasi antar perangkat berdasarkan metode pembaruan.

Karena blok OTA memastikan bahwa setiap perangkat menggunakan partisi yang sama, ini memungkinkan penggunaan dm-verity untuk menandatangani partisi sistem secara kriptografis. Untuk detail tentang dm-verity, lihat Boot Terverifikasi .

Catatan: Anda harus memiliki sistem OTA blok yang berfungsi sebelum menggunakan dm-verity.

Rekomendasi

Untuk perangkat yang diluncurkan dengan Android 5.0 atau lebih baru, gunakan pembaruan OTA blok di ROM pabrik. Untuk menghasilkan OTA berbasis blok untuk pembaruan berikutnya, berikan opsi --block ke ota_from_target_files .

Untuk perangkat yang diluncurkan dengan Android 4.4 atau lebih lama, gunakan pembaruan file OTA. Meskipun dimungkinkan untuk mentransisikan perangkat dengan mengirimkan OTA blok penuh Android 5.0 atau yang lebih baru, itu memerlukan pengiriman OTA penuh yang secara signifikan lebih besar daripada OTA tambahan (dan karenanya tidak disarankan).

Karena dm-verity memerlukan dukungan bootloader yang hanya ditemukan di perangkat baru yang dikirimkan dengan Android 5.0 atau lebih baru, Anda tidak dapat mengaktifkan dm-verity untuk perangkat yang ada.

Pengembang yang bekerja pada sistem Android OTA (gambar pemulihan dan skrip yang menghasilkan OTA) dapat mengikuti perubahan dengan berlangganan milis android-ota@googlegroups.com .

File vs. Blokir OTA

Selama OTA berbasis file, Android mencoba mengubah konten partisi sistem pada lapisan sistem file (berdasarkan file demi file). Pembaruan tidak dijamin untuk menulis file dalam urutan yang konsisten, memiliki waktu modifikasi terakhir yang konsisten atau superblok, atau bahkan menempatkan blok di lokasi yang sama pada perangkat blok. Karena alasan ini, OTA berbasis file gagal pada perangkat yang mendukung dm-verity; setelah upaya OTA, perangkat tidak bisa boot.

Selama OTA berbasis blok, Android menyajikan perbedaan antara dua gambar blok (bukan dua set file). Pembaruan memeriksa build perangkat terhadap server build yang sesuai di tingkat blok (di bawah sistem file) menggunakan salah satu metode berikut:

  • Pembaruan penuh . Menyalin gambar sistem lengkap sederhana dan membuat pembuatan tambalan menjadi mudah tetapi juga menghasilkan gambar besar yang dapat membuat penerapan tambalan menjadi mahal.
  • Pembaruan bertahap . Menggunakan alat pembeda biner menghasilkan gambar yang lebih kecil dan membuat aplikasi tambalan menjadi mudah, tetapi membutuhkan banyak memori saat membuat tambalan itu sendiri.

Catatan: adb fastboot menempatkan bit yang sama persis pada perangkat sebagai OTA penuh, jadi flashing kompatibel dengan OTA blok.

Memperbarui sistem yang tidak dimodifikasi

Untuk perangkat dengan partisi sistem yang tidak dimodifikasi yang menjalankan Android 5.0, proses pengunduhan dan penginstalan untuk OTA blok tetap sama seperti untuk file OTA. Namun, pembaruan OTA itu sendiri mungkin menyertakan satu atau beberapa perbedaan berikut:

  • Unduh ukuran . Pembaruan OTA blok penuh kira-kira berukuran sama dengan pembaruan OTA file lengkap, dan pembaruan tambahan hanya beberapa megabita lebih besar.

    perbandingan ukuran OTA

    Gambar 1. Bandingkan ukuran OTA Nexus 6 antara rilis Android 5.0 dan Android 5.1 (perubahan target build yang bervariasi)

    Secara umum, pembaruan OTA blok tambahan lebih besar daripada pembaruan OTA file tambahan karena:

    • Pelestarian data . OTA berbasis blok menyimpan lebih banyak data (metadata file, data dm-verity, tata letak ext4, dll.) daripada OTA berbasis file.
    • Perbedaan algoritma komputasi . Dalam pembaruan OTA file, jika jalur file identik di kedua build, paket OTA tidak berisi data untuk file tersebut. Dalam pembaruan OTA blok, menentukan sedikit atau tidak ada perubahan dalam file tergantung pada kualitas algoritma komputasi patch dan tata letak data file di sistem sumber dan target.
  • Sensitivitas terhadap flash dan RAM yang rusak . Jika file rusak, file OTA berhasil selama tidak menyentuh file yang rusak, tetapi OTA blok gagal jika mendeteksi kerusakan pada partisi sistem.

Memperbarui sistem yang dimodifikasi

Untuk perangkat dengan partisi sistem yang dimodifikasi yang menjalankan Android 5.0:

  • Pembaruan OTA blok tambahan gagal . Partisi sistem mungkin dimodifikasi selama adb remount atau sebagai akibat dari malware. File OTA menoleransi beberapa perubahan pada partisi, seperti penambahan file yang bukan bagian dari source atau target build. Namun, OTA blok tidak mentolerir penambahan partisi, sehingga pengguna perlu menginstal OTA penuh yang menimpa modifikasi partisi sistem apa pun) atau mem-flash citra sistem baru untuk mengaktifkan OTA di masa mendatang.
  • Upaya untuk mengubah file yang dimodifikasi menyebabkan kegagalan pembaruan . Untuk pembaruan file dan blok OTA, jika OTA mencoba mengubah file yang telah dimodifikasi, pembaruan OTA gagal.
  • Upaya untuk mengakses file yang dimodifikasi menghasilkan kesalahan (hanya dm-verity) . Untuk pembaruan file dan blok OTA, jika dm-verity diaktifkan dan OTA mencoba mengakses bagian yang dimodifikasi dari sistem file sistem, OTA menghasilkan kesalahan.