Shanling M0 - Smallest Hi-Res Portable Player - New Firmware V3.6

Nov 13, 2024 at 1:49 PM Post #6,436 of 6,446
I would like to add one more kind word for Shanling customer service.
I was one of the victims of the "3.0 firmware with the white theme" bug. Shanling offered me to either reflash my M0 on my own or to resend the M0 for warranty replacement. Because I thought I had the tools and knowledge and didn't want to miss my M0, I offered to reflash the M0 on my own.

By PM, I was sent a kit with a flash cloning tool (probably the Ingenic X1000E USB cloner toolkit that can be found on internet), a 2.5 firmware in a suitable form (essentially what you get after reassembling the files in the update.bin archive: u-boot, recovery, kernel, filesystem in UBI format) and a PDF guide for the disassembly of the M0
Where can I find those files u-boot, recovery, kernel, filesystem in UBI format for USB cloner tool for M0 device? Has anybody the copy of them?
I successfully made the recovery set for M0Pro for my friend, he has recovered his bricked M0Pro after bad firmware update. He has send me NAND dump and I was able to get the needed parts for Cloner Tool.
But there are at least two users who asked for M0 recovery tool and unfortunately they are unskilled and cannot get NAND dump from their M0 device.
If somebody can get NAND dump from their M0 device, it would be helpful to make recovery tool set. Usually the broken part is the system partition but bootloader is alive. The tool is just re-flash the kernel partition and the system one and not override anything else. But bootloader is missing in update.bin though and can be extracted form NAND dump.
 
Last edited:
Nov 13, 2024 at 3:01 PM Post #6,437 of 6,446
Interesting questions, I too would like to have a recovery set. I intend to use my M0 for a long time and though I do not expect any firmware updates anymore it would be nice to have all available tools.

How does that cloner thing even work, do you not have to put the player in some sort of special mode? I know that holding the middle button while powering on puts the Q1 in some sort of USB boot mode.
 
Nov 13, 2024 at 3:34 PM Post #6,438 of 6,446
How does that cloner thing even work, do you not have to put the player in some sort of special mode? I know that holding the middle button while powering on puts the Q1 in some sort of USB boot mode.
Yes, it has to be in USB boot mode. M0Pro has place on the board for the special button (see 2nd photo), M0 has that button on the board. To get USB mode press and hold that button together with power on button. Another way (unsafe and dangerous) is short connect 5,6 pins of NAND and power on the player (it overrides the boot sequence, makes SPI boot unavailable and allow bootloader to go to next way to boot - USB boot mode).
 

Attachments

  • IMG_20190610_204413.jpg
    IMG_20190610_204413.jpg
    4.1 MB · Views: 0
  • M0Pro_teardown+Image+2024-11-09+at+22.15.48 - Copy.jpg
    M0Pro_teardown+Image+2024-11-09+at+22.15.48 - Copy.jpg
    247 KB · Views: 0
Last edited:
Nov 13, 2024 at 3:41 PM Post #6,439 of 6,446
Yes, it has to be in USB boot mode. M0Pro has place on the board for the special button (see 2nd photo), M0 has that button on the board. To get USB mode press and hold that button together with power on button.
Nice, I might try that on mine.

I know that for Rockbox there is this ‘jztool’ thing that can interact with an Ingenic-based device: https://www.rockbox.org/wiki/JztoolInstall.html

One of the features is to make a backup of the bootloader but I think it starts with having a patched bootloader so that is a bit of chicken vs. egg situation.
 
Nov 14, 2024 at 12:55 PM Post #6,441 of 6,446
I played with that version but could not figure out how to make a back-up.

Modifying the code of the Rockbox bootloader of the Q1 I was able to play a bit with the m0 and make various backups. No idea how reliable or useful they are though.

That button in the m0 is truly tiny.
 
Nov 14, 2024 at 1:31 PM Post #6,442 of 6,446
No idea how reliable or useful they are though.
Can You share the bootloader part of backup? It usually from 0x0 to 0x67FF of NAND (fixed, my bad)
I played with that version but could not figure out how to make a back-up.
It's not trivial to make suitable configuration. I stuck with LPDDR configuration. The variants are different from earliest versions.
 

Attachments

  • config_2.png
    config_2.png
    19.1 KB · Views: 0
  • config_1.png
    config_1.png
    28.1 KB · Views: 0
Last edited:
Nov 16, 2024 at 2:45 PM Post #6,443 of 6,446
I see... READ attribute is suitable for short memory region read like serial number or bluetooth MAC or user_id etc. It works, it reads NAND memory from specific offset which sets by policy row but it reads only one piece which not excess 1MB (sets on DEBUG tab - transfer size). So it does not possible to get whole NAND backup on this way...
Here is 'READ' config for cloner-2.5.18-windows_alpha
Same on reddit thread "Because of the limitations of the cloner tool each dump file can only have 1MB. So my config file contains 7458 policies!"
 

Attachments

Last edited:
Nov 16, 2024 at 3:39 PM Post #6,445 of 6,446
I have what I believe is the full NAND dump at 128MB.

But with the first part of that (for the uboot section) and a firmware update for the rest, I believe you already have all pieces?
For recovery tool I can post here - yes, I have all I need. For backup purposes to all who may need - not, last partition (config/data) is not in firmware update.
 
Nov 17, 2024 at 1:12 PM Post #6,446 of 6,446
Recovery/unbrick M0 after failed firmware update.
https://www.mediafire.com/file/u3usw94a34lrnuj/M0_Cloner_Tool.zip/file
Step 1. Extract archive, go to the folder cloner-win32-driver and install driver. Right click on usb_cloner_device.inf -> Install
It may need to disable driver signature enforcement or bypass on warning for unsigned driver install ('Install this driver software anyway').
Step 2. Open up/disassemble M0 device to get access to tiny button on the board (see the photo).
Step 3. Make sure that M0 is powered off. Press and hold that tiny button on the board together with power on button for 3-5sec - M0 goes to USB boot mode.
IMG_20190610_204413(1).jpg
Connect USB cable to computer. Check in the Device manager for usb cloner device presents. If you see X0 (X and square symbols) device, install the driver by Step 1. Disconnect the USB cable.
Step 4. Go to the folder cloner-1.0.0BH4-windows_release\ and run cloner.exe application. Click on Start and now connect M0 device in USB boot mode (see Step 3).
The burn process starts automatically. When the message 'Stage 1 needs reset' is appeared, reset the M0 device (you may press tiny reset button near microSD card slot or press and hold power button about 10sec) and go to USB boot mode again. When process is complete, M0 device may reboots and normally boots to main screen.
Note: this tool does similar job as update.bin v3.6 firmware, i.e. it burns only two parts - kernel and system partition from firmware 3.6.
Here is useful photos how to disassemble M0 device https://www.head-fi.org/threads/sha...player-new-firmware-v3-6.874859/post-15011412


Recovery/unbrick M0Pro after failed firmware update.
https://www.mediafire.com/file/2z5yjt0rfuraqob/M0Pro_Cloner_Tool.zip/file
Step 1. Extract archive, go to the folder cloner-win32-driver and install driver. Right click on usb_cloner_device.inf -> Install
It may need to disable driver signature enforcement or bypass on warning for unsigned driver install ('Install this driver software anyway').
Step 2. Open up/disassemble M0Pro device to get access to tiny solder pads on the corner (it is place for unsoldered button) on the board (see the photo).
Step 3. Make sure that M0Pro is powered off. Short the pads on the board (See the photo) and in the same time press and hold power on button for 3-5sec - M0Pro goes to USB boot mode.
M0Pro_teardown+Image+2024-11-09+at+22.15.48 - Copy.jpg
Connect USB cable to computer. Check in the Device manager for usb cloner device presents. If you see X0 (X and square symbols) device, install the driver by Step 1. Disconnect the USB cable.
Step 4. Go to the folder cloner-1.0.0BH4-windows_release\ and run cloner.exe application. Click on Start and now connect M0Pro device in USB boot mode (see Step 3).
The burn process starts automatically. When the message 'Stage 1 needs reset' is appeared, reset the M0Pro device (you may press tiny reset button or press and hold power button about 10sec) and go to USB boot mode again. When process is complete, M0Pro device may reboots and normally boots to main screen.
Note: this tool does similar job as update.bin v1.6 firmware, i.e. it burns only two parts - kernel and system partition from firmware 1.6.

Warning! M0 and M0Pro are different devices. The tools are also different.
 
Last edited:

Users who are viewing this thread

  • Back
    Top