Development/research repo for M17 console
- CPU: Rockchip RK3126C
- RAM: 256MB DDR3
- Screen: 4.3 inches 480x272
- Ports: USB-C power/data, headphone jack 3.5mm, microSD slot
- Buttons: volume +/-, power, gamepad buttons
- Speaker: 1 speaker
Factory system is installed within this partition scheme:
NO LBA Name
00 00004000 uboot
01 00006000 trust
02 00008000 misc
03 0000A000 boot
04 0001A000 recovery
05 0002A000 backup
06 0003A000 oem
07 00102000 rootfs
08 00202000 userdata
- uboot and trust follow RK norm
- misc, backup and oem partitions are empty
- boot and recovery are Android-scheme boot images. boot has no ramdisk included, recovery seems to not be used in a normal boot process.
- rootfs contains a custom-built Buildroot Linux system. Using an script at /etc/init.d, em_ui.sh is launched if it's located under SD card mount point, otherwise /usr/bin/game is launched.
- userdata, despite being mounted, seems to not be used at the current stage.
SD card contains default "emulationstation" binary, config files and ROMs, but whole system is installed on internal memory.
Connect device to PC with USB cable, keep volume down button pressed, then power on the device.
Keep volume down pressed, power on the device. Stuck at Loading... screen, no interface through USB.
Place files under ADB folder on this repo on the root folder of your SD card. Turn on the device with SD card inserted, then connect with your computer and list adb devices.
Root is the default user. Anything you include in em_ui.sh file under sdcard root folder will run as root (like the ADB-enabling script).
Using rkdeveloptool, rkloader or any other Rockchip-focused tool will only properly backup the first 32MB of flash, due to a bug? in device uboot. Anything beyond this point will be invalid data. But as long as we have ADB shell and root permissions...
dd if=/dev/mmcblk1 of=/sdcard/backup.img
By default, an emulationstation binary on sdcard root is launched. Modifying em_ui.sh and pointing it to run "emulationstation" from system path instead of the sdcard path "/sdcard/emulationstation" will launch the binary present under /usr/bin, whose biggest difference is a new option under EmulationStation settings; Sound options.
Both "emulationstation" binaries present on this system have been built without normal user settings integrated (on code), so there is no way of "unlocking" options through es_settings.xml or similar methods.
Booting device with no SD card inserted will display a basic emulator interface with some NES games. This happens when /sdcard/em_ui.sh script is not present, and /usr/bin/game is launched instead.
In general, there is a lot of folders and files on SD card and system rootfs with no particular use or reason, probably things left from manufacturer tests. In this category we can find some roms and Retroarch cores under /userdata path. Cores can be manually launched, but they are prone to crash.
Technically there are no limitations on running another system on this device, as long as someone takes the time to make a port for this platform. Internal flash is writable using rkdeveloptool or even Rockchip proprietary tools, and we have a proper backup of the original content. So given the similarity of this system to Powkiddy A12/A13 or PS5000, that should be the way to go.
You could give a try to this, no guarantees
Three points indicated, square one is GND
Short circuit this test point with GND
It's impossible, as some CPU bus is shared between UART and SD card, so logging text is corrupted with SD card activity electrical noise...
My first experience recovering this device, do not follow this procedure