release
dev builds
extras
themes manual
wiki
device status forums
mailing lists
IRC bugs
patches
dev guide



Search | Go
Wiki > Main > IBassoDXPort

iBasso DX50 & iBasso DX90 Port page

Introduction

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.

Hardware

SOC Rockchip 2928 (DX50, Single Core ARM Cortex-A9), Rockchip 3028 (DX90, Dual Core ARM Cortex-A9)
Audio Codec Wolfson WM8740 (DX50), Sabre32 ES9018K2M per channel (DX90)
Screen 2.4" (320*240) IPS capacitive touch screen
RAM 398MB
Flash 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)
USB Micro USB (USB 2.0)
Buttons Power, Lock, Rewind, Play/Pause, Forward, Volume Plus/Minus, Gain (Low, Medium, High)
Battery Samsung SIII replaceable battery
Case Black anodized aluminium/plastic case (64x100x17 WxLxH (mm))

Port Status

The port status is: unstable (see TargetClassifications)

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 (r10e or newer), Rockbox source (see HowToCompile)

Linux

iBasso DX50

  • ANDROID_NDK_PATH=/path_to_android-ndk /path_to_rockbox_source/tools/configure --target=ibassodx50 --type=n && make zip

iBasso DX90

  • 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.

Loader application

  • cd /path_to_rockbox_source/rbutil/ibassoboot/jni
  • /path_to_android-ndk/ndk-build

This will create /path_to_rockbox_source/rbutil/ibassoboot/libs/armeabi/MangoPlayer.

Manual Installation

Rockbox

The contents of rockbox.zip (the .rockbox directory) needs to be copied to /mnt/sdcard/ (internal storage of the device accessable via USB).

Loader Application

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)

Links

Forum Threads

r9 - 02 Apr 2021 - 20:46:06 - UnknownUser

Copyright © by the contributing authors.