Can I still salvage this S10 Mini?

I have an S10 Mini Amlogic S905W Android TV box, fyi there is no stock Android image to flash back onto this thing that I could find.

I’m not particularly interested on running Android on it anyways, so I did a few things to it:

  • Tried running Armbian from the SD card, and then installed to the internal NAND/eMMC which it was able to boot into without SD card.
  • Tried booting from SD again and I did something to the eMMC that caused it to no longer be bootable anymore (I think I may have cp -ed an Armbian .img to the eMMC), at this point I thought I “bricked” it
  • Followed an online guide to create bootable SD card with an Android .img, Link to guide
  • Managed to boot with Aidan’s ROM for the S905W up to the loading screen, but did not boot into Android after waiting for several minutes, I could no longer boot to SD card by holding the AV button
  • Did the same thing but with a Tanix TX3 mini stock Android .img since the hardware was identical, at this point, the LED “boot” text on the box was no longer functional but I was able to boot into Android from the eMMC
  • Installed the “Reboot to LibreELEC” app from Google Play as the AV button to boot to SD card still didn’t seem to work
  • I was now able to boot to CoreELEC from the SD card

Which brings me to my current situation, I was happy to have something other than Android on this box, the problem is that I seem to have rendered the eMMC near-useless.

Nothing I have tried has allowed me to boot from the eMMC ever since, not even the bootable SD card method from above since that required me to hold the AV button longer than usual, but the AV button doesn’t seem to work that way anymore.

If I remove the SD card and power it on, the box becomes useless, I am left with a black screen, nothing happens until I unplug it, at the moment it seems to only boot when an SD card is inserted and has CoreELEC.

Ideally I’d like to somehow get CoreELEC installed to the eMMC from this point, even if it’s a more involved installation process, since the scripts/executables to install don’t work and using the “x” flag says I am missing a partition of some sort that the Android install might have had.

As an experiment, since I already could not get the box to boot from the eMMC, I booted into CoreELEC, from SD card, and via SSH, did a cp /dev/zero /dev/mmcblk0 to wipe the eMMC completely, then rebooted, and it was still able to boot to CoreELEC from the SD card.

The box is as of now completely reliant on booting from the SD card slot to CoreELEC, it refuses to boot from the eMMC even after taking the same .img that I used to get CoreELEC onto the SD card and copying it to /dev/mmcblk0 via SSH, I even mounted the boot partition (/dev/mmcblk0p1 iirc) to copy over the same .dtb file that I did for the SD card, still no dice.

There’s also /dev/mmcblk0boot0 and /dev/mmcblk0boot1 partitions that I’m rather unfamiliar with.

Any way to save the eMMC? For example a way to have a working standalone install on the eMMC that boots? I’m not really interested in going back to the stock Android install.

I believe you’ll have to start with flashing the stock Android firmware back.

There is also a chance might work after flashing Aidan’s ROM.

There’s a few options to do so:

Amlogic USB Burning Tool
Amlogic Bootcard Maker

A few things, I’m not sure about the USB burning tool method since I don’t know if it is possible to boot from USB on this machine.

The bootcard maker for an SD card seems good, but that link seems to point me towards a windows only program, and unfortunately I do not have access to any machines running windows at this moment.

There was a way to make a bootable SD card from Linux, here:

Which worked for flashing Aidan’s ROM, however, after that, I have not been able to successfully flash Aidan’s ROM a second time, the problem seems to be that holding the AV button on the back will no longer make the machine boot into recovery image.

I’m not sure if using the Linux guide above will work for a USB stick instead of an SD card, maybe that’s worth a try? Otherwise not sure how to go about fixing the boot issue.

The only way I can successfully boot into anything without hanging on a black screen is by booting into CoreELEC installed to an SD card, can’t seem to make it boot from an SD card recovery, unsure about how to boot from USB.

The good news is the device isn’t “dead” or “bricked”. It’s just missing it’s android boot loader. To solve your issue, you need to get the device booting into Android.

The problem is easily fixed by reflashing the firmware. The tool to do so is either Amlogic USB Burning Tool together with a USB patch cable on a Windows PC, or an SD Card and Amlogic Bootcard Maker, another Windows tool.

The Amlogic Bootcard Maker procedure can be replicated in Linux with the aml-upgrade-package-extract tool by our dev @Portisch as explained an article you linked to.

You will have to find the correct firmware for your device or get it booting from a compatible Aidans Rom. Either way, you need Android 7.1 (Nougat) to boot on the device. From there you can upgrade, install CoreELEC to eMMC, boot from USB, etc. Till then, you still can use the device with CoreELEC booting from SD Card.

This article has a bit more info at the end on flashing firmware under Linux.

Also maybe look here: Burning Tools for Linux PC

I started playing around with the tv box again and confirmed a few things:

So basically the bootcard method does not work, though it did work before, presumably before I removed the android boot loader. If I had to wager a guess, it’s because I erased the Android recovery which was needed to apply Aidan’s ROM?

I may have to use a USB burning tool instead, it seems like I might be able to do this on Linux as well from your link to the khadas forum.

What I did next was improvise and I used a USB A to USB C m2m cable to connect the box to a laptop with a USB C port, I also plugged in the power cable to the tv box.

The Laptop was running Linux Mint 21, and a lsusb | grep Amlogic shows the following:

Bus 001 Device 006: ID 1b8e:c003 Amlogic, Inc.

It seems like the box was correctly picked up, from here I could try to install the burning tools from Khadas, try to flash Aidan’s ROM and hope for the best.


Your last link was what did it for me Burning Tools for Linux PC - Announcements - Khadas Community

What I did was the following on an amd64 laptop:

  • Booted into Linux Mint 21 LiveCD
  • Connect to network
  • Open a terminal with CTRL + ALT + T
  • sudo apt update
  • sudo apt install libusb-dev git
  • git clone
  • cd utils

Now before running the INSTALL script, I had to modify the if statement and sudo apt update manually so that it will work on LM21 via LiveCD, it looked like this:


set -e -o pipefail

BASE=$(dirname "$(readlink -fm "$0")")

DISTRIB=$(cat /etc/lsb-release | grep "DISTRIB_ID" | awk -F "=" '{print $2}')
DISTRIB_RELEASE=$(cat /etc/lsb-release | grep "DISTRIB_RELEASE" | awk -F "=" '{print $2}')


error_msg() {
	echo -e ${RED}Error:${RESET} $1

prepare_host() {
	local hostdeps="libusb-dev git parted lib32z1 lib32stdc++6 libusb-0.1-4 libusb-1.0-0-dev libusb-1.0-0 ccache libncurses5 pv base-files linux-base xz-utils"
	local deps=()
	local installed=$(dpkg-query -W -f '${db:Status-Abbrev}|${binary:Package}\n' '*' 2>/dev/null | grep '^ii' | awk -F '|' '{print $2}' | cut -d ':' -f 1)

	if [[ "$DISTRIB" == "LinuxMint" ]] && [[ "$DISTRIB_RELEASE" == "21" ]]; then
		hostdeps="$hostdeps lib32ncurses6"
		hostdeps="$hostdeps lib32ncurses5"

	for packet in $hostdeps; do
		if ! grep -q -x -e "$packet" <<< "$installed"; then deps+=("$packet"); fi

	if [[ ${#deps[@]} -gt 0 ]]; then
		echo "Installing dependencies"
		echo "Requires root privileges, please enter your passowrd!"
		#sudo apt update // COMMENTED OUT TO WORK ON LINUX MINT LIVECD, RUN sudo apt update MANUALLY FIRST!!!
		sudo apt -y --no-install-recommends install "${deps[@]}"
		sudo update-ccache-symlinks


echo -e "Installing Amlogic flash-tool..."
echo -e "\nInstalling Rockchip flash-tool..."
echo -e "\nInstalling Tone burn-tool..."
echo -e "Installing Khadas burn-tool..."
mkdir -p $INSTALL_DIR

echo "Done!"

You could also remove the whole if block entirely and just append lib32ncurses6 to the hostdeps variable yourself.

After this:

  • Enter your sudo password if applicable (not needed from LM21 LiveCD)
  • Type “yes” and hit enter to all prompts (since we are not on Ubuntu)
  • Now that the utils are installed, connect your tv box to your computer via USB somehow (I did it via USB-A to USB-C male to male cable)
  • Connect the TV box to a power source
  • lsusb | grep Amlogic this should return a single line after connecting your tv box
  • ./aml-flash-tool/tools/linux-x86/update identify

The above command should return something like:

This firmware version is 0-7-0-16

And finally:

  • burn-tool -i ~/Downloads/AidanROM-V9-S905W-P281.img

Everything seemed to go well, and I said yes to the reboot prompt at the end, though I had to pull the power plug from the box since it was connected to the laptop and connect it to a power strip, plugged an hdmi cable to the TV and it booted Aidan’s ROM!

Unfortunately the LED display on the front still does not work but hey, I finally got it to boot without the SD card! Thanks!

I’m guessing from here I can proceed to install CoreELEC to the actual eMMC good and proper? Even if I have to use the manual CLI installer? (which I hear is experimental)

Although I am worried about whether or not the AV button on the back will work so I can boot CoreELEC from SD Card and install, should I be worried about that?

The AV button appears to work, but I don’t know how to boot into CoreELEC from the SD Card now, would it be a good idea to use the “Reboot to LibreELEC” app from Google Play that I used before?

If I hold the AV button as it powers on, it goes into Android recovery, at which point neither the wireless USB mini keyboard I am using will work for navigation, nor the remote that came with the TV box.

AV button is working, toothpick method allows me to boot into CoreELEC from SD Card, and the wireless usb keyboard only works from the 2nd USB slot but not the 1st, going to give the eMMC install a try via SSH.

1 Like

That’s progress.

Now if we just could find the correct Android firmware for your device.

Unfortunately I have not been able to find the stock Android firmware for this particular device anywhere, searching for this particular model has not yielded anything productive.

Product info:

  • Model: S10 mini
  • CPU: Amlogic S905W, ARM Cortex-A53 (4 core)
  • GPU: ARM Mali-450 MP (5 core)
  • RAM: 2GB
  • ROM: 16GB

Aidan’s ATV ROM might be the best I can do at the moment, I had previously tried the Tanix TX3 mini firmware since the hardware was identical, the X96 Mini appears to have identical hardware as well but I have not tried that firmware. Short of finding another working S10 mini and creating a backup from it to restore it to my current box, I don’t seem to have any other options.

In any case, after booting into CoreELEC via toothpick method I tried installing it to the eMMC to this unsupported device via ssh using ceemmc. I wanted to install CoreELEC only without dual boot, I got an error, something about /dev/reserved not being writable I think? The new partition table failed to write as well, making the device unbootable and I had to flash Aidan’s ROM once more with the same procedure I wrote above.

I used:

  • CoreELEC-Amlogic-ng.arm-19.5-Matrix_rc2-Generic.img release
  • gxl_p281_2g.dtb device tree.

I do not have exact log/errors at the moment but I will try it again later since someone else seemed to have gotten a working single boot install on their box by migrating a (failed) dual boot to single boot installation.

Just Thinking
Why no leave on External 32 gig
Which us twice size of internal

With Reboot from EmmC/Nand function in CoreELEC
Can switch between Aidan n CoreELEC

What are advantages writing to interal.

Happy Testing

Use CE-20, you need a new ceemmc version.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.