OTA berbasis blok

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

  • Android 5.0 dan versi yang lebih baru menggunakan pembaruan blok OTA untuk memastikan bahwa setiap perangkat menggunakan partisi yang sama persis. Daripada membandingkan file individual dan menghitung patch biner, blok OTA menangani seluruh partisi sebagai satu file dan menghitung patch biner tunggal, memastikan partisi yang dihasilkan berisi bit yang diinginkan. Hal ini memungkinkan citra sistem perangkat mencapai keadaan yang sama melalui fastboot atau OTA.
  • Android 4.4 dan versi sebelumnya menggunakan pembaruan file OTA, yang memastikan perangkat berisi konten, izin, dan mode file yang serupa, namun memungkinkan 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, hal ini memungkinkan penggunaan dm-verity untuk menandatangani partisi sistem secara kriptografis. Untuk detail tentang dm-verity, lihat Boot Terverifikasi .

Catatan: Anda harus memiliki sistem blok OTA 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 selanjutnya, teruskan opsi --block ke ota_from_target_files .

Untuk perangkat yang diluncurkan dengan Android 4.4 atau lebih lama, gunakan file pembaruan OTA. Meskipun dimungkinkan untuk melakukan transisi perangkat dengan mengirimkan OTA blok penuh Android 5.0 atau lebih baru, hal ini memerlukan pengiriman OTA penuh yang jauh lebih besar daripada OTA tambahan (dan oleh karena itu 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 sudah 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 versus blok OTA

Selama OTA berbasis file, Android mencoba mengubah konten partisi sistem pada lapisan sistem file (berdasarkan file per file). Pembaruan tidak menjamin penulisan file dalam urutan yang konsisten, memiliki waktu modifikasi terakhir atau superblock yang konsisten, 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 memberikan perbedaan antara dua gambar blok (bukan dua kumpulan file) kepada perangkat. Pembaruan ini memeriksa build perangkat terhadap server build terkait di tingkat blok (di bawah sistem file) menggunakan salah satu metode berikut:

  • Pembaruan penuh . Menyalin image sistem secara lengkap sangatlah mudah dan membuat pembuatan patch menjadi mudah, namun juga menghasilkan image berukuran besar sehingga penerapan patch menjadi mahal.
  • Pembaruan bertahap . Menggunakan alat pembeda biner menghasilkan gambar yang lebih kecil dan membuat aplikasi patch menjadi mudah, namun membutuhkan banyak memori saat membuat patch itu sendiri.

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

Perbarui sistem yang tidak dimodifikasi

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

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

    perbandingan ukuran OTA

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

    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.) dibandingkan 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 blok OTA, menentukan sedikit atau tidaknya perubahan pada suatu file bergantung 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 blok OTA gagal jika mendeteksi adanya kerusakan pada partisi sistem.

Perbarui sistem yang dimodifikasi

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

  • Pembaruan OTA blok tambahan gagal . Partisi sistem mungkin diubah selama adb remount atau sebagai akibat dari malware. File OTA mentolerir beberapa perubahan pada partisi, seperti penambahan file yang bukan bagian dari sumber atau target build. Namun, blok OTA tidak menoleransi penambahan partisi, jadi pengguna perlu menginstal OTA penuh yang akan menimpa modifikasi partisi sistem apa pun) atau mem-flash image 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 sistem file sistem yang dimodifikasi, OTA akan menghasilkan kesalahan.