The following steps were performed on a Windows (7) computer, SP Flash Tool does exist for Linux, but I was unable (aka, didn’t try hard enough) to get it working correctly. For some unknown reason between most steps I had to restart SP Flash Tool, otherwise the Mediatek device wasn’t detected, don’t ask me why.
When Mediatek devices boot, shortly after power on, any computer connected via USB will detect an “MT65xx preloader” device, this should last for about 2 seconds and then disappear. This preloader allows user’s to flash the device, and also recover data.
Open SP Flash Tool, go to the “Download” tab and provide any Mediatek device scatter file:
Open the “Memory Test” tab:
Hit “Start” and power on the Mediatek device, plugged in to the computer via USB:
The following error message should appear:
The bad news is that you’re using the wrong scatter file (but we knew that anyway), the good news is that we now have a chip type, and we can find a more appropriate scatter file ! You can power off the Mediatek device (for now).
Load the “correct” scatter file (found somewhere on the web) into SP Flash tool, and open the “Readback” tab:
Click on “Add”, then hit “Read Back”, and turn on the Mediatek device:
The result should come back pretty quick, and in the bottom left hand corner there’s a handy little box full of info about the Mediatek device. Unfold the “EMMC Flash” panel:
Scroll down to the bottom, what’s important here is “UA Size”, the actual size of the entire EMMC_USER partition. Copy that value to your clipboard, because you’ll be needing it in the next step:
For this part, stay on the “Readback” tab and double click the only line in the table. Choose where you want to store the EMMC image, then the following window should pop up, all you need to do is paste the “UA Size” from the previous step in the “Length” field. Make sure that “Region” is “EMMC_USER” and “Start address” is just “0x00000” (the number of zeroes doesn’t matter, 0x0 = 0x00 = 0x00000000
)
Click “OK”, hit “Read Back” and power up the Mediatek device: the download will start and all you have to do is wait !
You can (should) also backup the BOOT1 and BOOT2 partitions, the required information is also provided in the “EMMC Flash” bottom-left panel.
Now that you have the image, you can move back to a reliable operating system (Linux) and see what’s inside:
$ fdisk -l emmc.img
Disk emmc.img: 14,56 GiB, 15634268160 bytes, 30535680 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 00000000-0000-0000-0000-000000000000
Device Start End Sectors Size Type
emmc.img1 1024 7167 6144 3M Microsoft basic data
emmc.img2 7168 17407 10240 5M Microsoft basic data
emmc.img3 17408 37887 20480 10M Microsoft basic data
emmc.img4 37888 58367 20480 10M Microsoft basic data
emmc.img5 58368 58879 512 256K Microsoft basic data
emmc.img6 58880 59647 768 384K Microsoft basic data
emmc.img7 59648 60415 768 384K Microsoft basic data
emmc.img8 60416 93183 32768 16M Microsoft basic data
emmc.img9 93184 125951 32768 16M Microsoft basic data
emmc.img10 125952 126975 1024 512K Microsoft basic data
emmc.img11 126976 143359 16384 8M Microsoft basic data
emmc.img12 143360 176127 32768 16M Microsoft basic data
emmc.img13 176128 995327 819200 400M Microsoft basic data
emmc.img14 995328 1015807 20480 10M Microsoft basic data
emmc.img15 1015808 1017855 2048 1M Microsoft basic data
emmc.img16 1017856 1028095 10240 5M Microsoft basic data
emmc.img17 1028096 1038335 10240 5M Microsoft basic data
emmc.img18 1038336 1042431 4096 2M Microsoft basic data
emmc.img19 1042432 1046527 4096 2M Microsoft basic data
emmc.img20 1046528 1114111 67584 33M Microsoft basic data
emmc.img21 1114112 5308415 4194304 2G Microsoft basic data
emmc.img22 5308416 5922815 614400 300M Microsoft basic data
emmc.img23 5922816 22708223 16785408 8G Microsoft basic data
emmc.img24 22708224 30501887 7793664 3,7G Microsoft basic data
emmc.img25 30501888 30534655 32768 16M Microsoft basic data
You can try mounting partitions, a bit of math is required, let’s say we want to mount the emmc.img23
partition:
Device Start End Sectors Size Type
emmc.img23 5922816 22708223 16785408 8G Microsoft basic data
You need to take the “Start” offset (5922816
in this case) and multiply this by the sector size (512
), which gives us: 3032481792
. Now we can mount:
$ mount -o loop,offset=3032481792 emmc.img /mnt/tmp