iBasso DX50 & iBasso DX90 Port page
The iBasso DX50 and iBasso DX90 are flash-based DAPs which use Android 4.2.2 without JAVA as operating system.
The port consists of two parts
- Rockbox itself
- A loader application, that replaces the original firmware player application, and lets you choose between Rockbox and the original firmware player, if you boot the device with the hold switch engaged (in the upper/locked position).
The port was developt with a DX50 as test device. The implementation of DX50 and DX90 differ in very few code lines, but it was never thoroughly tested on the DX90.
|| Rockchip 2928 (DX50, Single Core ARM Cortex-A8), Rockchip 3028 (DX90, Dual Core ARM Cortex-A9)
| Audio Codec
|| Wolfson WM8740 (DX50), Sabre32 ES9018K2M per channel (DX90)
|| 2.4" (320*240) IPS capacitive touch screen
|| 8GB (5.9GB usable)
| SD Card
|| SDHC/SDXC (supports up to 2TB, 128GB SDXC confirmed)
| Output Connectors
|| 3 x 3.5mm jacks (headphone, line out, digital coax)
|| Micro USB (USB 2.0)
|| Power, Lock, Rewind, Play/Pause, Forward, Volume Plus/Minus, Gain (Low, Medium, High)
|| Samsung SIII replaceable battery
|| Black anodized aluminium/plastic case (64x100x17 WxLxH (mm))
The port status is: unstable
Despite the classification all Rockbox functions are usable and the port runs stable on the DX50.
The unstable classification is due to the non trivial installation process of the loader application.
How to build manually
Required: Android NDK (Android 16), Rockbox source (see HowToCompile
- ANDROID_NDK_PATH=/path_to_android-ndk /path_to_rockbox_source/tools/configure --target=ibassodx50 --type=n && make zip
- ANDROID_NDK_PATH=/path_to_android-ndk /path_to_rockbox_source/tools/configure --target=ibassodx90 --type=n && make zip
This will create rockbox.zip in the current directory.
- cd /path_to_rockbox_source/rbutil/ibassoboot/jni
This will create /path_to_rockbox_source/rbutil/ibassoboot/libs/armeabi/MangoPlayer.
The contents of rockbox.zip (the .rockbox directory) needs to be copied to /mnt/sdcard/ (internal storage of the device accessable via USB).
Android Debug Bridge
- Open a adb shell on to the device.
- Remount /system writeable.
- Rename /system/bin/MangoPlayer to /system/bin/MangoPlayer_original
- Exit the adb shell.
- Push /path_to_rockbox_source/rbutil/ibassoboot/libs/armeabi/MangoPlayer to /system/bin/
- Push /path_to_rockbox_source/rbutil/ibassoboot/jni/chooser.bmp to /system/
- Push /path_to_rockbox_source/rbutil/ibassoboot/jni/usb.bmp to /system/
- Push /path_to_rockbox_source/rbutil/ibassoboot/jni/rbmissing.bmp to /system/
- Open a adb shell on to the device.
- Remount /system readonly.
- Reboot the device.
Modifing the original firmware
Required: Tools to unpack and pack Rockchip 2928 firmware images.
You need to unpack the original firmware update.img file. It contains a system.img than can be mounted as loopback device with a ext3 filesystem. This system.img is the /system directory on the device and should be modified as described above. Then you need to repack the update.img with the modified system.img. The update.img can than be used to do a firmware update of the device.
Things to do
- Installation mechanism: The main problem is the installtion of the loader application. A modified orginal firmware or adb access to the device is need for this. Patching the the orginal firmware is probably the way to go. Currently there are two modified firmware images for original firmware 1.50 (DX50) and 1.60 (DX50) circulating.
- Adapt the manual (graphics of the player are done already)
- Better integration in the rockbox.org web site (dev builds, themes ...)
Copyright © by the contributing authors.