In April 2022, my 8 Pro bricked in the same way, and I finally know the reason!
Answer - Bootloader!#
OnePlus signs all four firmware with the same signature, OP8, OP8T, OP8Pro, and 9R all use the same signature, which means that regardless of which one you flash, their PBL (Primary Bootloader) will load the XBL (Secondary Bootloader).
While OxygenOS OTA is generally safe, it can still accidentally cause OxygenOS to refresh the wrong image or TWRP to instruct the payload to refresh the DDR4 bootloader on a DDR5 device. Previous OnePlus 8 and 8 Pro firmware came with a single bootloader designed for either DDR4 or DDR5. But starting from OxygenOS 12, they began shipping DDR4 and DDR5 in the same package. The reason the phone bricked is that LPDDR5 uses a lower voltage compared to LPDDR4X, and simply because there is no code to prevent XBL from setting the voltage too high on LPDDR5, the RAM fails to load the correct voltage and cannot function properly, causing the phone to fail to boot.
So if we manually flash OOS OTA via fastboot, we should check if it is the correct XBL to prevent this from happening.
Model | RAM |
---|---|
OnePlus 8 | LPDDR4 |
OnePlus 8 Pro | LPDDR5 |
OnePlus 8T | LPDDR4x/LPDDR5 |
OnePlus 9R | LPDDR4x/LPDDR5 |
If you are OnePlus 8 (DDR4), you should flash xbl.img and xbl_config.img
If you are OnePlus 8 Pro/8T/9R (DDR5), you should flash xbl_lp5.img and xbl_config_lp5.img
I recommend that everyone who makes fastboot flashers include this change or create separate flashers for each code name!
Previously, LP5 was only available for the 9R firmware, but it seems some changes occurred after OnePlus joined OPPO, making many people feel it is dangerous.
The images above show some checks, but they seem to be malfunctioning, and the voltage is set too high.
So, please stop flashing non-DDR5 bootloaders into the 8 Pro firmware! Or at least add protection to prevent boot failure when DDR5 is detected.
How to Remedy#
Flashing the wrong XBL generally results in the phone behaving like a brick (unable to power on, enter fastboot, 9008 mode, and no charging animation response when plugged in).
We can purchase an engineering cable with specific resistances to connect to your phone and use this cable for normal 9008 flashing operations to rescue your phone.
Of course, if your area does not sell cables explicitly with resistances, you can also use cables with similar functions to pcb2.0 for flashing, which generally contain various types of resistors and typically look like this.
I hope this post can help others who encounter the same issue.
Reference article:
XDA(GUIDE How to Avoid Killing Your OnePlus 8 Pro/8T/9R with OxygenOS 12 / ColorOS 12)
Coolapk @Jpnx49Db0 related images and text
GUIDE How to Avoid Killing Your OnePlus 8 Pro / 8T / 9R with OxygenOS 12 / ColorOS 12