Memasang ARM Translation di Genymotion
Pertama kali mengenal Genymotion adalah kala saya ingin menjalankan WhatsApp di komputer. Genymotion adalah emulator Android yang mengambil dasar dari proyek android-x86 dengan beberapa perbaikan. Meski ditujukan bagi para pengembang aplikasi Android yang ingin secara cepat menguji aplikasi tanpa harus memiliki banyak perangkat Android, namun kalangan awam bisa mencobanya secara gratis dengan pengurangan beberapa fitur.
Umumnya perangkat Android menggunakan prosesor ARM, sementara mayoritas komputer pribadi menggunakan arsitektur x86_64. Untuk menjembatani kesenjangan arsitektur ini, pada masa-masa awal rilisnya Genymotion menyediakan sebuah pustaka penerjemah agar instruksi aplikasi Android yang umumnya hanya mengerti arsitektur ARM dapat dimengerti dan dijalankan dalam sistem berarsitektur x86. Nama pustaka ini kalau tidak salah adalah ARM translation. Namun sayangnya, ARM translation ini tidak berumur lama karena sepertinya terbentur masalah lisensi, atau mungkin hanya dijadikan kelengkapan pada Genymotion versi berbayar. Entahlah.
Dengan absennya pustaka ARM translation ini, mengakibatkan beberapa aplikasi Android tidak lagi bisa dipasang di Genymotion.
Beruntung, seiring kian maraknya perangkat Android yang berprosesor x86 dari Intel, jumlah aplikasi yang hanya bisa berjalan di ARM kian menyusut. Namun tetap saja ada beberapa yang tetap menolak dipasang di x86, misalnya aplikasi myIM3 yang bagi pengguna layanan Indosat seperti saya, mau tidak mau mesti dipasang jika ingin mendapatkan layanan Indosat sepenuhnya.
Tanpa sengaja, saya menemukan proyek yang menjadi dasar dari ARM translation untuk x86; libhoudini. Rupanya libhoudini ini adalah produk dari proyek android-x86 yang adalah upstream Genymotion.
Tidak lagi berpanjang lebar, berikut adalah cara memasang libhoudini ke dalam Genymotion agar kita bisa menjalankan aplikasi Android yang dikhususkan untuk arsitektur ARM.
Clone salah satu repo GitHub yang menyediakan
libhoudini.git clone https://github.com/rrrfff/libhoudiniJalankan Genymotion.
Buka terminal di komputer dan jalankan perintah berikut untuk masuk ke dalam shell Android Genymotion.
adb shellTujuan masuk ke
adb shellini adalah untuk mengaitkan ulang partisi/systemagar bisa menyimpan berkas-berkas pustakalibhoudinike dalamnya. Jadi pastikan kita login sebagai root, jika tidak, jalankan perintahsuagar kita login ke root shell.Partisi
/systemdi sistem Android biasa dikaitkan sebagai “hanya-baca” (read-only). Agar bisa menambahkanlibhoudinike partisi ini maka kita perlu mengaitkannya ulang menjadi “baca-tulis” (read-write).mount -o rw,remount /systemKeluar dari shell. Karena tadi kita login sebagai root, keluar dahulu dari root.
exitBaru kemudian keluar dari shell.
exitDalam folder hasil clone di atas terdapat dua buah folder yang sepertinya adalah versi
libhoudini. Kita pilih versi paling tinggi saja dan berpindah ke dalamnya.cd libhoudini/4.0.8.45720Salin berkas-berkas
libhoudinike dalam sistem Android Genymotion.adb push system /Setelah proses penyalinan selesai, kita kembali masuk ke shell Android genymotion untuk mengaktifkan
libhoudini.adb shell su enable_houdiniMestinya kini ARM translation telah bisa bekerja.
Keluar dari shell.
exit exitReboot Android Genymotion.
adb reboot
That’s it. Pustaka libhoudini telah terpasang dan mestinya kita telah bisa memasang aplikasi Android yang dikhususkan arsitektur ARM.
Jika ternyata ada aplikasi tertentu yang membandel enggan dipasang, atau memang selalu crash ketika dijalankan, coba pasang pustaka libhoudini lain masih dari repo yang sama.
Pada repo https://github.com/rrrfff/libhoudini, selain berkas-berkas yang telah disinggung di atas, juga terdaftar beberapa berkas berbentuk squash filesystem yang isinya adalah libhoudini juga.
Jika ingin memasang libhoudini dari berkas-berkas squashfs tersebut, ikuti petunjuk berikut:
- Unduh berkas sfs yang dibutuhkan. Karena Genymotion adalah sistem x86, unduh berkas versi x. Sesuaikan juga dengan versi Androidnya, apakah 6, 7 atau 8. Misal hendak mengunduh berkas houdini untuk Nougat, maka berkas yang harus diunduh adalah http://dl.android-x86.org/houdini/7_x/houdini.sfs.
- Kaitkan berkas
houdini.sfspada sebuah titik kait, misalnya/tmp/houdini.sudo mount houdini.sfs /tmp/houdini - Ikuti langkah 1 sampai 4 dari proses memasang
libhoudinidi atas. - Buat sebuah folder untuk menampung berkas-berkas
libhoudini.mkdir /system/lib/arm - Ikuti langkah 5 dan 6 dari proses memasang
libhoudinidi atas. - Salin folder
binke Android Genymotion.adb push system/bin /system - Salin isi
houdini.sfsyang telah dikaitkan tadi.adb push /tmp/houdini/* /system/lib/arm - Ikuti langkah 8 hingga 10 dari proses memasang
libhoudinidi atas.
What a labourish task isn’t it?
Kalau memang karena sesuatu hal akan sering melakukan langkah di atas, akan lebih baik untuk membuat sebuah skrip otomasi. Atau buat saja sebuah snapshot pada VirtualBox Android Genymotion-nya.
Addendum 20181012: ARM Translation
Tautan libghoudini untuk Android Oreo x86 pada repo di atas ternyata 404, alias tidak ditemukan. Setelah beberapa lama mengubek-ubek internet, akhirnya terantuk laman http://23pin.logdown.com/archives, khususnya artikel Genymotion Tool Collections.
Dari artikel tersebut kita akan mendapati sebuah folder di MEGA yang berisi ARM Translation untuk Android 5, 6 dan 8. Use at your own risks!
Cara pemasangan ARM Translation ini mudah saja. Berikut salah satu caranya:
- Jalankan Genymotion dan buat sebuah perangkat.
- Unduh ARM Translation sesuai perangkat Android yang tadi dibuat. Misal, jika tadi membuat perangkat Android 8 maka unduh
ARM_Translation_Oreo.zip. - Buka Settings Genymotion dan klik bilah ADB.
- Pilih Use Genymotion Android tools (default).
- Jalankan perangkat Android yang dibuat pada langkah 1.
- Seret dan jatuhkan (drag and drop) berkas
ARM_Translation_Oreo.zipke jendela Android 8 Genymotion dan ikuti wisaya selanjutnya. - Reboot perangkat Android.
That’s it.