Pada artikel ini, kita akan membahas bagaimana membuat proses update OTA incremental pada ROM Android custom. Proses update OTA (Over-The-Air) adalah cara yang digunakan untuk memperbarui firmware smartphone Android tanpa perlu menggunakan kabel USB.
Dalam postingan ini, saya telah berhasil membuat versi pertama dan kedua dari firmware, sehingga memiliki file target_files.zip pertama dan kedua. Lalu, saya menciptakan file ZIP incremental OTA menggunakan panduan resmi Google (https://source.android.com/devices/tech/ota/tools) dengan perintah berikut:
./build/tools/releasetools/ota_from_target_files -i PREVIOUS-tardis-target_files.zip dist_output/tardis-target_files.zip incremental_ota_update.zip
Setelah membuat file ZIP incremental OTA, saya mencoba untuk memperbarui firmware versi pertama dengan file ZIP tersebut menggunakan langkah-langkah berikut:
- Membuat file "command" di dalam folder /cache/recovery dengan teks sebagai berikut:
--update_package=/cache/Update.zip
- Mengkopikan file incremental_ota_update.zip ke folder /cache
- Menjalankan perintah dari aplikasi sistem, yang adalah launcher app:
RecoverySystem.installPackage(context, new File("/cache/incremental_ota_update.zip"));
Namun, setelah memperbarui firmware, saya tidak melihat perubahan apapun dan update incremental tidak terinstal.
Saya kemudian mencoba untuk memahami kesalahan yang terjadi dengan membaca log file. Hasilnya menunjukkan bahwa ada masalah dengan verifikasi signature OTA.
Pada postingan ini, kita akan membahas bagaimana mengatasi masalah verifikasi signature OTA dan membuat proses update OTA incremental berjalan dengan baik.
Masalah Verifikasi Signature OTA
Dalam log file, saya melihat pesan error sebagai berikut:
Error: Invalid OTA package, missing scatter
E:install package error, result = 1
Update.zip is not correct
Installation aborted.
nand type is emmc
Pesan error tersebut menunjukkan bahwa file ZIP incremental OTA tidak valid karena tidak memiliki scatter (file yang menjelaskan lokasi dan ukuran file-file dalam firmware). Oleh sebab itu, proses update OTA incremental gagal.
Solusi Masalah
Saya mencoba untuk mengatasi masalah dengan membuat file scatter (ota_scatter.txt) dari versi kedua target_files.zip dan memasukkan file tersebut ke dalam file ZIP incremental OTA. Namun, hasilnya masih sama, yaitu error verifikasi signature OTA sebagai berikut:
E:footer is wrong
Update package verification took 0.0 s (result 1).
E:signature verification failed
E:install package error, result = 7
Signature verification failed
Installation aborted.
nand type is emmc
Pesan error tersebut menunjukkan bahwa file ZIP incremental OTA tidak valid karena footer signature-nya salah.
Kesimpulan
Dalam postingan ini, kita telah membahas bagaimana membuat proses update OTA incremental pada ROM Android custom. Namun, saya masih mengalami masalah verifikasi signature OTA dan perlu melakukan penyempurnaan lebih lanjut untuk membuat proses update OTA incremental berjalan dengan baik.
Semoga postingan ini dapat membantu orang lain yang ingin membuat proses update OTA incremental pada ROM Android custom.