Rockbox on Android

Rockbox on Android

Saya menggunakan cara seperti yang pernah saya tulis dahulu. Diasumsikan sudah terpasang Android SDK dan NDK. Kali ini saya menggunakan Sony Ericsson Xperia Mini Pro (SK-17i). Berhubung ini adalah catatan dan saya pikir tulisan ini hanya bagi heker sejati, maka saya tidak berusaha untuk membuat tulisan ini layak masuk jurnal.

Rockbox menggunakan tanda tangan yang sudah kadaluarsa. Untuk itu, Java yang digunakan harus Java 6 atau lebih lawas. Java 7 (IcedTea 7.2.3.3) menolak untuk menandatangani JAR yang dibuat dengan tanda tangan tersebut.

Rockbox telah memindahkan kode sumber GIT-nya ke GitHub. Untuk itu, mari ambil dari yang baru:

$ git clone git://github.com/Rockbox/rockbox.git
$ mkdir rockbox/bangun && cd rockbox/bangun

Konfigurasikan seperti biasa:

$ ./configure --ccache --no-sdl-threads --lcdwidth=320 --lcdheight=480 --target=android --ram=358

Kendati menurut spesifikasi SK-17i memiliki memori 512MB, menurut “Setelan –> Tentang ponsel –> Memory” tertulis 358. Dewasa ini untuk mengompilasi lebih cepat digunakan ccache.

Setelah dikonfigurasi, langsung dikerjakan:

$ make apk

Setelah beberapa saat, bila tak ada kerusuhan, maka rockbox.apk akan tercipta di direktori “bangun”.

Tamat.

Berikutnya hanya bagi yang merasa tertantang.

Bermain Prosesor

Menurut sebuah artikel, prosesor MSM8255 yang dimiliki oleh SK-17i memiliki tambahan GCC sebagai berikut:

-march=armv7-a -mfloat-abi=softfp -mfpu=neon

Untuk itu, dapat diubah di berkas Makefile, konfigurasi GCCOPTS dimodifikasi dengan membuang “-mcpu” dan “-march”. Keduanya diganti menjadi:

export GCCOPTS=-W -Wall  -O   -Wstrict-prototypes -pipe -std=gnu99 -march=armv7-a -mfloat-abi=softfp -mfpu=neon -fomit-frame-pointer --sysroot=/opt/android-ndk/platforms/android-5/arch-arm  -Wno-pointer-sign -Wno-override-init

Setelah itu, kompilasi lebih lanjut.

Bermain Scrobbler

Secara baku, Rockbox tidak begitu mendukung Last.FM. Untungnya, Matt Muscari telah menyediakan tambalan sederhana. Intinya, ada dua tempat dalam satu berkas  “android/src/org/rockbox/Helper/RunForegroundManager.java” yang harus ditambahkan.

Pada fungsi updateNotification, tambahkan beberapa baris ini pada akhir:

/* adding scrobble */
Intent scrobbleUpdate = new Intent("net.jjc1138.android.scrobbler.action.MUSIC_STATUS");
scrobbleUpdate.putExtra("playing", true);
scrobbleUpdate.putExtra("artist", artist);
scrobbleUpdate.putExtra("track", title);
scrobbleUpdate.putExtra("album", album);
mCurrentService.sendBroadcast(scrobbleUpdate);

Kemudian, pada fungsi finishNotification, tambahkan beberapa baris berikut untuk mengirim data ke Last.FM:

/* adding scrobble: track finish */
Intent scrobbleUpdate = new Intent("net.jjc1138.android.scrobbler.action.MUSIC_STATUS");
scrobbleUpdate.putExtra("playing", false);
mCurrentService.sendBroadcast(scrobbleUpdate);

Buat APK seperti biasa.