Trying to recover MXIII G II S912 TV Box from what looks like corrupted/dead internal memory

Trying different versions of CoreELEC for specific devices is just wrong, wrong, wrong.

You do not need to short pins and I would advise against this incase you touch the wrong pins and fry the SoC, I have purposefully bricked one of my boxes in the past by zero’ing the whole eMMC to see how recoverable these boxes where and because I wanted to try doing some bootloader development.

As I said earlier I have come back from the worst possible case of bricking you can do, there is always a way to recover these boxes.

Firstly you need the vendor firmware for your specific box and you have not stated what your device is.

Secondly this is the guide I followed to recover from a completely bricked device, if you follow it then you should have no issues in restoring your device.

The name of the box is in the title:)
This is the exact one I have, I will continue now to read and follow the guide you linked me.
Thanks ,will come back after I tried that.

I totally missed that, sorry.

That looks to be the firmware, I’m not sure if it is the full image though as it seem’s to be rather small.

I burnt this two images on the SD card with Burn Card Maker :


And as stated above I get a progress bar that gets stuck forever at like 5%.

The one from China Gadgets Reviews is the “update_MXIII-GII_rv112.img” one same as the one from Entertainment Box website.
The “update_MXIII-GII_rv112.img” has 743 MB.
The “update_MXIII-GII_rv109.img” has 885 MB.

Tried them both on USB Burning Tool and with the Burn Card Maker and both seem to get stuck around 5 to 10%, as in the picture.

Although GearBest already has the “update_MXIII-GII_rv109.img” version on their site I asked them for another one but they said they can’t help me because the one year warranty has passed.
I cant find the site of the manufacturer either.

Well the good news is your box isn’t bricked per se, I’d imagine that is an upgrade image though hence it won’t go over 5%, you need the full image for this to work.

Your box not booting CoreELEC is nothing to do with the DTB, I would image u-boot is missing from the eMMC and that is why you are getting no video signal.

One option that should work but I have not tested is to burn the S912 image and then add u-boot to it from that upgrade image. If you have access to a linux PC then it’s easy.

sudo dd if=aml_sdc_burn.UBOOT of=/dev/sdX bs=1 count=442
sudo dd if=aml_sdc_burn.UBOOT of=/dev/sdX seek=1 skip=1 bs=512

You would have to replace /dev/sdX with the device-node for your SD card, this method does not work with USB.

This is the u-boot I have extracted from that image aml_sdc_burn.UBOOT (912.5 KB).

1 Like

This is exactly what I was asking for, I flashed an ubuntu image on a usb pen drive for this, but I am very unfamiliar with this things so could you please walk me trough every step and command line I need to type into the terminal?

Should I open the terminal where aml_sdc_burn.UBOOT is placed then just enter the two commands with the correct sdX?

The process of shorting NAND pins is a valid and well recognized recovery method for extreme bricks and I have used it myself when flashes corrupted the boot loader. It is a standard method for recovering Khadas products and described on their own forum and website. It is not described for most boxes since most boxes are not documented.

Here is a thread where it is discussed for various different boxes:


Thanks a lot , did what you said and it boots into Kodi just fine even Wi-Fi and everything seems to work :slight_smile:

As I said all boxes can be unbricked, it’s just knowing how.

The best thing to do now would be to install that u-boot image into the bootloader partition so you can boot from our stock images.

Copy the u-boot file to your device and SSH into CoreELEC and do dd if=/storage/aml_sdc_burn.UBOOT of=/dev/bootloader

Confirm everything is okay by burning our S912 image again to a seperate flash drive/sdcard and try to boot from it.

Sorry for the delay, here is what I did.
I went ahead and burnt another card with a S912 image.
I booted ubuntu on my pc , downloaded the aml_sdc_burn.UBOOT file.
Opened a terminal and did:

scp ~/Downloads/aml_sdc_burn.UBOOT root@
ssh root@
dd if=/storage/aml_sdc_burn.UBOOT of=/dev/bootloader

Then I inserted the card with the stock image in the box and it still didn’t boot.

Also , I bought a higher speed card and tried burning the firmware again on the new card and this is what I get now:

Sorry this is your bootloader file bootloader.PARTITION (912 KB)
the other was the recovery bootloader.

dd if=/storage/recovery.PARTITION of=/dev/bootloader

I did this again with the bootloader.PARTITION file.

Did :
scp ~/Downloads/bootloader.PARTITION root@
And got :
bootloader.PARTITION 100% 912KB 8.0MB/s 00:00
Did :
ssh root@
Did :
dd if=/storage/bootloader.PARTITION of=/dev/bootloader
And got :
1824+0 records in
1824+0 records out
933888 bytes (912.0KB) copied, 0.009870 seconds, 90.2MB/s

And it still does not boot with the stock image.

It’s not supposed to help you boot the stock image, it’s supposed to help you boot from USB/SD without having to write u-boot manually each time.

Unless you can get the stock Android image then you will not be able to boot it again, you can however install CE on the internal memory.

Sorry I meant the stock S912 image, I mean without adding the uboot file.

Edit 1: Could you link me a guide on how to install CoreELEC to the internal memory?:slight_smile:

Edit 2: Do I only have to do “installtointernal” twice over ssh?

Edit 3: This is what I got when running “installtointernal” over ssh:

One of BOOT, SYTEM, DATA or DTB partitions is missing.
Make sure that you are using a correct device tree and a device with internal memory!

Before you ran installtointernal did the coreelec usb boot?

because it seems to me that you didn’t use the correct device tree

Download the S912 image, burn to usb, on the newly burnt usb, you will see a folder of device trees, choose the correct device tree, copy it to the root of the usb, then rename it to dtb.img

If it doesn’t boot, try another device tree, unless it boots, you won’t be able to installtointernal

I am using the “gxm_q200_2g.dtb” device tree.

The box, which name you can see in the title has 2GB of RAM and 1000 Mb/s Ethernet port.

The SD I burnt with the S912 image only boots if I manually add the u-boot file.
However after I add the file it boots fine , Wi-Fi and everything seems to run just fine, so I don’t think I am using a wrong dtb.

if you write uboot in to internal memory, the offset (first 0x200 bytes are always zeros) must be considered.

dd if=/dev/zero of=/dev/bootloader bs=4M count=1
dd if=/storage/bootloader.PARTITION of=/dev/bootloader bs=512 seek=1

You can also restore Android OS via OTA update by modifying aml_sdc_burn.ini as follows:

erase_bootloader    = 0
erase_flash         = 4
reboot              = 0

;package will filled by sdacard burning tool
package     = aml_upgrade_package.img
;media       =

Note: Never enable the “erase_bootloader” option on an OTA update.

1 Like

dd if=/dev/zero of=/dev/bootloader bs=4M count=1
And got:
1+0 records in
1+0 records out
4194304 bytes (4.0MB) copied, 0.015331 seconds, 260.9MB/s
dd if=/storage/bootloader.PARTITION of=/dev/bootloader bs=512 seek=1
And got:
1824+0 records in
1824+0 records out
933888 bytes (912.0KB) copied, 0.011547 seconds, 77.1MB/s

And it doesn’t want to boot the stock S912 image.

Could you be more precise about the OTA thing ,as I mentioned above I am very unfamiliar with this sort of stuff, the more in depth , the better.

I unfortunately have to go now but will come back tomorrow with updates if any.