dev builds
themes manual
device status forums
mailing lists
IRC bugs
dev guide

Search | Go
Wiki > Main > TargetStatus > ShanlingQ1Port

Shanling Q1

Port status

Feature Working Notes
Audio playback Yes >= 176.4 KHz playback and too much DSP can make the UI unresponsive
Display Yes Known bug: very rarely, system might lock up after screen turns on
Buttons Yes  
Touchscreen Yes  
MicroSD Yes  
Battery reporting 50% Rockbox's reporting of the battery level can be inaccurate
Battery charging Yes Hardware controlled, works fine
Dual boot Yes  
USB Partial File transfers are slower than the OF
USB DAC No Feature not available in Rockbox; use the OF for this
Bluetooth No  
WiFi No  
Rockbox utility support No Manual installation is required

Rockbox works well on the Shanling Q1 and is generally stable for audio playback.

Due the the high amount of effort needed to get Bluetooth and WiFi working, there is currently no plan to support wireless functionality in Rockbox. It works fine under the original firmware, which can be accessed through the dual-boot feature.

The Rockbox Utility does not yet support the Q1, so installing the bootloader is a manual process. For installation instructions, see JztoolInstall. After installing the bootloader, you can install and update Rockbox by unzipping a daily build to your SD card.

Known issues

Bootloader backups on the Shanling Q1 may not restore your device to a usable state if you have updated the original firmware (OF) after taking the backup.

To avoid issues, do not update the OF while the Rockbox bootloader is installed. If you want to change your OF version, remove the Rockbox bootloader first by restoring your bootloader backup, and then update the original firmware. After the update, you can reinstall Rockbox and take a new backup (and make sure to delete your old one, which is now useless).

Hardware summary

Component Model Notes
SoC X1000E 1.0GHz MIPS XBurst with 64MB of SIP LPDDR RAM
NAND ATO25D1GA 1 Gbit SPI NAND flash
DAC ES9218P  
PMU AXP192  
Fuel gauge CW2015  
LCD controller RM68090(?) some commands seem to match up
Touch controller FT6x06  
Bluetooth/WiFi BCM4343W(?) completely unverified
Battery ??? 1100 mAh

See also: IngenicX1000

Accessing the CPU boot ROM

Holding the middle button on the left side of the unit while plugging it into a USB port will enter USB boot mode, under the standard X1000 USB ID of a108:1000. It's possible to load Rockbox directly with ingenic_tools/usbboot.

Executing scripts on the OF

Creating the following two files on the SD card allows running a custom script instead of the player app:

The OF will execute factorytestapp as root if both files exist. (Note they must both be normal files.) This can be used to extract information from the running kernel by writing a script. After the script finishes the Q1 will hang in the splash screen so you have to wait sufficient time for your script to run, and then force power off by holding the power button. On the Q1's filesystem the SD card is mounted at /mnt/mmc, that can be used to save script outputs.

Example scripts

Get the contents of the root filesystem and kernel messages:

ls -lR / > /mnt/mmc/rootfs.txt
dmesg > /mnt/mmc/dmesg.txt

Dump the contents of the NAND flash partitions to the SD card (warning: this will take a while -- allow several minutes before powering off to ensure you get a complete dump).

nanddump -f /mnt/mmc/nand0.bin /dev/mtd0
nanddump -f /mnt/mmc/nand1.bin /dev/mtd1
nanddump -f /mnt/mmc/nand2.bin /dev/mtd2
nanddump -f /mnt/mmc/nand3.bin /dev/mtd3
nanddump -f /mnt/mmc/nand4.bin /dev/mtd4
nanddump -f /mnt/mmc/nand5.bin /dev/mtd5
nanddump -f /mnt/mmc/nand6.bin /dev/mtd6

# NOTE: these seem different from the ones above, and might not dump successfully
#nanddump -f /mnt/mmc/nand7.bin /dev/mtd7
#nanddump -f /mnt/mmc/nand8.bin /dev/mtd8

Kernel source

Shanling provided these links to their Linux kernel source. Both tarballs are identical and the code appears to be for the M0, with no reference to the Q1. According to Shanling this is correct, and they've stated the source for the players are "more or less identical". Based on some structs which have been changed from Ingenic's sources, this is indeed the case, but disassembling the Q1's kernel is still necessary to get some critical info like GPIOs.

I Attachment Action Size Date Who Comment
ubi_extract.shsh manage 1.8 K 12 May 2021 - 22:29 Main.AidanMacDonald utility script to convert UBI root filesystem image to a tarball
r9 - 08 Sep 2022 - 16:55:30 - Main.AidanMacDonald

Parents: TargetStatus
Copyright © by the contributing authors.