beep... beep... blink... blink...
 
No Recovery, No Fastboot, No FastbootD – No Problem! – Case Study with Xiaomi Redmi Note 10 5G

No Recovery, No Fastboot, No FastbootD – No Problem! – Case Study with Xiaomi Redmi Note 10 5G

Caution: The process shown below is not for the average user. If you do not understand the process, you should not do it at all. There is a risk of rendering your phone completely dead. Should you need assistance with your phone, contact me on Telegram, I’ll be happy to assist.

Recently I was donated with a fairly new Xiaomi Redmi Note 10 5G smartphone. It was working fine running the latest MIUI (version 13 at the time of writing), but for privacy reasons I wanted to convert it to running LineageOS. A quick search on the official web site showed that there was no official LineageOS version for this model. However, recently there is an option to install a generic version of custom ROMs, called GSI to most devices. I have successfully installed custom ROMs on several phones in the past for myself and for friends and family, but this was the first time I attempted to do such a thing on a modern, project Treble compatible device.

The techniques, tools and tips I share in this article are shown working on my Xiaomi Redmi Note 10 5G, but should work the same way on any similar (i.e. MediaTek CPU, Treble compatible, etc) device.

In this article I will not go into the details how and why I messed up the phone to the point that when switched on it only switched on the LCD backlight for a few second then it switched off again, just to repeat this indefinitely, until the battery ran out with nothing shown on the screen. Enough to say, the phone started to look like a very expensive paperweight… I could not enter recovery mode (VolumeUp + Power buttons), fastboot mode (VolumeDown + Power buttons). It was scary…

On the XDA forums there are many ready made, “easy to follow” articles to help you out, but as I found it out, they were not 100% accurate. I have tried a few, learnt a lot from them, but they all failed to bring my phone back to life. That is where my 10+ year experience with similar things come to help. I have adjusted and customized the steps I found all over the internet and compiled them in a more accurate list of steps to help anyone facing the same issue. I also want to thank XDA member wetito for nudging me in the right direction!

Using BROM mode to make contact with the phone

The Xiaomi Redmi Note 10 5G phone has a MediaTek MT6833 Dimensity 700 CPU. As such the mtktool by bkerler is the weapon of choice when all hope is lost :). Installation and use are listed on the tool’s page.

I recommend using the command line version, as the GUI version kept timing out for me. When this happens to you, no panic, just start it again in command line mode.

Either way, to use the tool, first download and extract the stock ROM for your device. I put my extracted stock firmware files in the E:\camellian_global_images_V13.0.3.0.SKSMIXM_20220907.0000.00_12.0_global folder.

Then use the following command to revive your phone:

This took 2-3 hours to transfer the required files via USB to the phone. Later on I found a useful tip on the internet (unfortunately I cannot remember where to give credit) how to speed it up: Edit the mtkclient\mtkclient\Library\mtk_daxflash.py file. Edit the line that says

to read

This will greatly speed up the file transfer. The total time for me went from a couple of hours down to a few (10-15) minutes.

This is a sample output to expect when you first connect the device to the computer:

If all goes well, you will at least have the option to go to fastboot mode.

If not, issue the following command, again, in BROM mode:

python mtk w boot_a "E:\camellian_global_images_V13.0.3.0.SKSMIXM_20220907.0000.00_12.0_global\images\boot.img"

Using fastboot mode to restore stock ROM

To upload the stock ROM in fastboot mode, you need to make sure you have downloaded the fastboot version of the ROM. You can find both recovery and fastboot versions of the stock ROM with a bit of a search. Make sure it is for your model exactly!

Once downloaded and extracted (to a folder which has no space in its path, otherwise the flash process will fail), you should use the batch files (or shell scripts, if you are Linux) included. Many recommend using MiFlash utility, but I couldn’t get it to work – it kept timing out and failing other ways. Finally I decided to do it the proper way, from the command line. The command line scripts are included as part of the stock ROM packages, so you don’t have to download/install anything else.

I recommmend using the flash_all.bat (or flash_all.sh for Linux users) to do the job. The scripts use standard platform-tools commands, so you should have them already in your PATH. If they are not, you can modify the flash_all.bat file as I did:

As you can see all I did was to make sure that the fastboot command is accessible to the script.

Once ready, put the phone in fastboot mode, and issue this command:

This will execute all the commands in the batch file one by one, you can follow them on the screen:

The last command is to reboot the phone. If all went well, the phone is now restored to its factory default state. Life is good again! 🙂

Bonus #1: Replace stock MIUI with a GSI

My original goal was to replace the privacy killer MIUI OS with a more privacy friendly OS. In this case I install a GSI version of LineageOS, but (I guess) many other will do as well. The steps below worked for me, so I am recommending them. The steps I found on the internet did NOT work for me, in fact, that’s how I ended up soft-bricking the phone in the first place.

Download a copy of your desired GIS package, then extract it. The content is a single .img file, in my case lineage-19.1-20221011-UNOFFICIAL-arm64_bvS.img.

Enter the following commands just like I did, one at a time:

The last command will reboot your phone in recovery mode. There you need to wipe the data partition, so select Wipe data, then Wipe all data. Once finished, reboot to system. Your new operating system should boot now without any issues:

Bonus #2: Root your phone with Magisk!

If you want to further your abilities to customize the phone’s OS, you should install Magisk, which is a small utility granting you root privileges on the phone. The installation and usage of Magisk is clearly written on its own web site. This is the summary:

  1. Extract boot.img from your stock ROM
  2. Move it to the phone
  3. Install Magisk APK
  4. Patch the boot.img with Magisk
  5. Move the patched file back to your PC
  6. Flash the patched file to the phone using ADB:
  1. Reboot phone

I can confirm that it works well, without a glitch on the Xiaomi Redmi Note 10 5G and several other phones I tested:

Magisk installed

3 Comments

  1. Chris

    Hello Viktor,
    Very nice guide you have here!

    I notice you did ‘set_active a’ when you install LineageOS. Is it be possible to leave stock rom on the b slot and be able to easily switch between roms?

What do you think?

This site uses Akismet to reduce spam. Learn how your comment data is processed.