PERINGATAN: TIPS INI SANGAT BERBAHAYA DAN DAPAT MERUSAK HP ANDA. ANDA SUDAH DIPERINGATI! UNTUK MENGHINDARI ‘KECELAKAAN’, SAYA SENGAJA MEMBUAT TULISAN INI DIPENUHI TAUTAN YANG HARUS DIBACA DAN TIDAK DAPAT LANGSUNG DITERAPKAN.

Motivasi

HP Nexian Journey saya layarnya sudah retak-retak karena terjatuh. Katanya biaya perbaikan 700 ribu. Lalu, secara tak sengaja saya menyolok keluaran suara dengan jack 3,5″ yang terlalu besar. Hal ini menyebabkan keluaran suara menjadi longgar. Akibatnya keluaran suara tidak bisa dipakai secara optimal.

Alasan lainnya adalah semenjak pembaharuan ke CM7 yang terbaru sering mengalami galat. HP menjadi liar apabila memori penuh. Layar sentuh tak dapat dipencet dan tombol-tombol secara acak seperti terpencet. Hal ini diperparah dengan rumor yang tersiar bahwa CM7 sedang bermasalah dengan partisi swap.

Lebih dari itu semua, motivasi saya adalah memberi alasan untuk lembiru HP ini. Saya sedang menaksir dengan HP Android SonyEricsson. Terutama semenjak SonyEricsson menyediakan fasilitas untuk oprek-oprek, bahkan mendukungnya. Apalagi, saya sebenarnya penyuka HP SonyEricsson. Itu sebabnya seperti kata orang bule, “no heart feeling” bila seandainya perjalanan ini harus berakhir.

Motivasi yang terakhir adalah saya sudah membuang Vista asli di komputer saya dan malas mencari DVD pemasangnya dan memasang di komputer hanya untuk menjalankan SUTLR. (Komputer OEM Acer Aspire sudah dari sananya terpasang.)

Persiapan

Persiapkan GNU/Linux Anda agar dapat mendeteksi perangkat Android. Caranya ada tersebar di Internet, silakan dibaca. Intinya, Anda hanya perlu membuat aturan UDEV agar perangkat memiliki perizinan yang memadai. Contoh aturan UDEV saya:

 # cat /etc/udev/rules.d/51-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", ATTRS{idProduct}=="c001", MODE="0666", OWNER=="jp" # RECOVERY MODE
SUBSYSTEM=="usb", ATTR{idVendor}=="0489", ATTRS{idProduct}=="c004", MODE="0666", OWNER=="jp" # RECOVERY MODE
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="05c6", MODE="0666"

Setelah itu, unduh SDK terbaru dan taruh di tempat yang mana pun Anda suka. Caranya mudah, cukup pasang Oracle Java 6 di komputer Anda dan unduh SDK. Cara lengkap bisa dibaca di sini atau sini. Intinya:

  1. Pasang Oracle Java SDK untuk program Java.
  2. Unduh dan taruh SDK Android, misalnya saya taruh di “/opt/android-sdk”.
  3. Masukkan letak binari SDK ke dalam variabel lingkungan PATH, contoh .bashrcsaya:
    $ cat ~/.bashrc | grep PATH
    PATH=/opt/android-sdk-update-manager/platform-tools:/opt/android-sdk-update-manager/tools:$PATH
    export ANDROID_SDK_PATH=/opt/android-sdk-update-manager
    export ANDROID_NDK_PATH=/opt/android-ndk-r5b

Sekedar catatan, sepertinya tidak perlu mengunduh platform apapun karena hanya membutuhkan aplikasi ADB saja. Saya juga mengunduh NDK karena ada aplikasi yang saya kompilasi sendiri. Bila sudah benar maka saat Anda menjalankan ADB. Anda dapat melihat perangkat Anda:

$ adb devices
List of devices attached
FA1MAEU0017937  device

Kalau masih kosong, silakan Anda coba cari caranya. Kadang-kadang, mungkin Anda perlu menjalan-ulangkan ADB Server. Caranya:

$ adb kill-server
$ adb start-server

Seharusnya, sih, bisa.

Menggunakan AndroidFlasher

AndroidFlasher adalah sebuah aplikasi yang ditujukan untuk menggantikan fungsi SUTLR dengan skrip Python sederhana. Di dalam berkas unduhan hanya tersedia tiga aplikasi:

  • fastboot – sebuah aplikasi kecil yang didapatkan dari kode sumber Android. (Atau gugel saja yang sudah jadi)
  • nb0-utils.jar – aplikasi java untuk kompresi nb0 dari A688 Tools. (Silakan digugel saja aplikasi Windows ini)
  • Flasher.pyw – aplikasi kecil buatan AndroidFlasher yang melakukan otomatisasi pemasangan.

Untuk menjalankan AndroidFlasher, syaratnya HP harus dinyalakan dengan mengunakan modus Fastboot. Kombinasi tombol untuk menyalakan HP: End_call (tombol merah) + Vol_Down + Power

Kalau menurut keterangan pembuat aplikasi, taruh saja berkas nb0 pada direktori yang sama. Lalu, saat ditanyakan namanya, masukkan nama berkas tersebut di dalam tanda kutip. Misalnya Anda seperti saya yang ingin mencoba buatan negeri sendiri. Anda dapat mengunduh Android Chemplon 2.3.0 karya RadithTux. Maka, tulis nama yang hendak dimasukkan adalah “Android_Cemplon-2.3.0.nb0”.  (Ditulis beserta tanda kutip)

Tantangan

Nah, permasalahan saya adalah sistem Gentoo x64 saya menggunakan Python3. Flasher.pyw tidak dapat dijalankan. Saya terpaksa membedah isinya untuk mengetahui apa saja yang dilakukan skrip tersebut. Dari gambar yang terdapat di situs Android Flasher, ternyata skrip Python ini hanya menjalankan aplikasi-aplikasi yang tersedia. Prosesnya ternyata mudah:

  1. Mengekstraksi berkas-berkas dari berkas NB0 (misalnya Android_Cemplon-2.3.0.nb0).
  2. Memasang setiap berkas IMG. Format IMG adalah sebuah berkas rekaman partisi yang siap ditulis langsung ke cakram HP.

Berikut ini adalah cara-cara untuk memasang berkas-berkas dalam NB0. Asumsi saya berkas tersebut ada di dalam direktori yang sama dengan aplikasi fastboot dan nb0-utils.jar. Hal ini sebenarnya tidak perlu tapi agar mudah.

Ekstraksi NB0

Jalankan perintah berikut untuk mengekstraksi isi Android_Cemplon-2.3.0.nb0 ke direktori ROM:

$ java -jar nb0-utils.jar Android_Cemplon-2.3.0.nb0 ROM

Pasang IMG ke partisi bersangkutan

Kalau menurut gambar di situs AndroidFlasher, urutannya sebagai berikut:

  1. Menghapus data pengguna dan tembolok:
    $ fastboot -w
  2. Memasang partisi Splash Screen:
    $ fastboot flash splash ROM/F0X-0-225D-4014-splash.img
  3. Memasang partisi System:
    $ fastboot flash system ROM/F0X-0-225D-4014-system.img
  4. Memasang partisi Boot:
    $ fastboot flash boot ROM/F0X-0-225D-4014-boot.img
  5. Memasang partisi FTM:
    $ fastboot flash ftm ROM/F0X-0-225D-ftm.img
  6. Memasang partisi Hidden:
    $ fastboot flash hidden ROM/F0X-0-225D-4014-hidden.img
  7. Memasang partisi Recovery:
    $ fastboot flash recovery ROM/F0X-0-225D-recovery.img

Ketika saya berusaha memasang Chemplon, proses pemasangan partisi Boot ada keanehan. Dia berhasil “sending ‘boot’ (5120KB)”, tetapi saat “writing ‘boot’…” gagal. Ini saya duga karena ukuran partisi Boot Chemplon yang terlalu besar. Tetapi, ternyata saya biarkan saja tetap bisa masuk ke mode normal.

Setelah selesai, nyala ulangkan HP:

$ fastboot reboot

Catatan Tambahan

Sebenarnya kelebihan NB0 adalah ia dapat mereset ulang konfigurasi. Sepertinya itu karena ia melakukan

adb push

berkas-berkas konfigurasi.  Berkas-berkas lain yang disertakan dalam NB0 sepertinya berkas konfigurasi yang perlu ditaruh. Tetapi, saya masih malas mencari padanan berkas-berkas tersebut. Yang penting kelar.

Omong-omong, Chemplon bagus, lho…. 🙂