Redmi Note 8 Pro – Megathread
Xiaomi sent many of us the Redmi Note 8 Pro (Indian variant – begoniain) back in November 2019. Development started out great but came to an abrupt halt when at one point all of us were bricked. A little bit of caution and a bit more of tinkering, and we’re back!
Long story short, yes this device does brick, and yes there IS a method to avoid it! I request you to take out some time and read the entire post before you proceed. Following instructions is crucial if you want to save yourself trips to the service center.
begonia? begoniain? what’s happening?
There is 2 variants of the Redmi Note 8 Pro. “begonia” is the global variant whereas “begoniain” is the Indian variant. The only difference between the 2 is NFC. The Indian Variant has no NFC. And no, it’s not as if it’s disabled, the hardware is just not present. The TWRP and ROM build target both, so you do not have to worry about a thing. Irrespective of where you bought the phone, all custom software is the same and will run on both variants.
Unlocking the bootloader and gaining root
This has been covered by other threads in the past, so I won’t dive into too much detail here. You need to unlock your device using the Unlock Tool that Xiaomi provides and wait for almost a week (168 hours) to gain unlock permissions. There’s no way to get around this. Please follow any other guides for installing a recovery, flashing Magisk, disabling AVB and booting up.
Custom ROMs and bricking
Regarding bricks, yes this device will get bricked if you do stupid things or don’t follow instructions. Feel free to ask if you ever have a doubt. Do NOT spam on ROM threads. Ask here, and use search before you do. Chances are, someone has asked the same thing in the past.
Now, doing things like:
- Tripping AVB
- Flashing an incompatible boot and dtbo
- Flashing a weird boot image
will result in a brick. You won’t have fastboot, you won’t have anything in such cases. Only Boot ROM download mode, which requires a Mi Authorized Account. In such cases, you will need to visit the service center.
PLEASE NOTE: I do NOT recommend online services that promise to unbrick your device. Not only are they highly overpriced, but could result in you getting scammed, or have your data stolen. If you have a Mi Authorized Account and are willing to help us out, feel free to PM me. Any online service ads for the same will NOT be entertained.
Now, there is a way to prevent bricks entirely. However, it does not work with the MIUI 11 Android 10 China build that surfaced a few months ago. The factory firmware for begonia was leaked, @Xakep1993 discovered that the factory had a lot of security checks disabled, and compiled in engineering mode.
Before we go any further, know that there is no way for you to unbrick a phone that’s already bricked and is running the MIUI preloader. (Visit a Service Center in such a case) The following applies only to devices that are in a good, working state and will prevent bricks.
Okay, so how does that help?
Glad you asked. Every MediaTek device has 2 download connections. Boot ROM (aka BROM) and Preloader. Boot ROM is burnt onto the SoC and is the first program to run. Preloader is loaded after. Boot ROM implements security measures against attacks, which includes flashing improper or malicious firmware. This is “SLA” and “DAA”, that is “Serial Link Authentication” or “Download Agent Authentication”. This happens server-side and requires the Mi Authorized Account, that only service centers have.
What’s so different with this firmware?
Preloader runs after BROM and does not require any security verification to write partitions. MIUI’s preloader has download disabled. When you brick, you have Preloader starting and rebooting constantly. (And holding volume up gets you to BROM download). There’s no way to talk to the MIUI Preloader. The Factory Preloader, on the other hand, has download enabled. So, if something goes wrong, as long as the Factory Preloader is present you CAN unbrick!
How to install it?
If you are on MIUI 11 – Android 10, you WILL need to downgrade to Android 9! This method will not work if you’re on Android 10. Use MiFlashPro or fastboot to flash all partitions to a compatible MIUI 10 or 11 Android 9 build.
I will add a zip that can be flashed from TWRP, soon. Until then, you can flash it via Fastboot.
1. Download preloader_begonia.bin and lk.img from attachments
fastboot-flash preloader preloader_begonia.bin
fastboot flash lk lk.img
fastboot flash lk2 lk.img
(LK = Little Kernel = Bootloader)
You can now use SP Flash Tools to restore your “bricked” phone!
This will also make the bootloader append certain debug flags to the kernel cmdline. So you may see some interesting behavior while Android is running!
You can find the full factory-build here. This is a barebones MTK-Android build. We don’t recommend using it xD
Where are my Custom ROMs? ETA PL0Z BRO!!!
They’re almost ready now, you should see threads popping up in a few more days.
Okay, thanks for the “anti-brick” factory preloader! I’m gonna flash another MIUI build!
Hol’ up, fam. You need to check whether the MIUI OTA you’re installing contains Preloader and LK or not. If it does, remove it manually. Another method could be to install the OTA and then flash the factory Preloader and LK image again via fastboot.
Once ROMs are out, the install process is very simple and much like any other device:
– Download ZIP
– Push ZIP to device
– Flash using TWRP
– Install GApps (optional)
Assuming you have the factory preloader installed,
– Disconnect device from PC if connected
– Load SP Flash tool
– Load firmware of choice
– Press download, SP Flash tool will now wait for the device
– Connect device and don’t hold any keys
– If the device doesn’t detect, hold power for an 8-10 seconds
– It should start flashing right away without any authorization prompt!
Building ROMs (Developers only)
Things are still under development. Things may be broken, may or may not boot at all. Current code can be found below:
Device Tree – branch android-10
Vendor Tree – branch android-10
Kernel – branch master
Info about the patch: many partitions of the device (including DTBO) are signed using private keys. We don’t have access to these keys, and thus our generated dtbo images don’t boot. I managed to strip out the certs, write a simple Python script and write custom dtbo generation rules that append the required certs.
Things may be missing here, more information will be added as necessary