In this guide, we will show you the steps to flash the xbl or xbl_lp5 on your OnePlus device. One of the biggest perks of having a OnePlus device is the fact that even if your device ends up in a hard brick state, you could still easily recover it by booting it to EDL Mode and flashing the OFP firmware via MSM Download Tool. However, as of late, we came across a few reports wherein users were unable to get this job done as their PC simply refused to identify the device in EDL Mode.
These issues are nothing new and we have seen plenty of such reports in the past as well. However, this time around, there was a strange pattern with all these reports, most of them have flashed the firmware [payload.bin] via the Fastboot Enhance Tool. And this is where lies the issue. All those OnePlus 8T that were launched prior to March 2021 come with LPDDR4 whereas those launched after that come with LPDDR5.
So the devices with LPDDR5 need to flash xbl*_lp5 images whereas those with LPDDR4 should flash xbl* images without _lp5. This is one of the most important aspects that many users end up missing and even the Tool isn’t designed/updated with this check. So it ended up flashing the incorrect xbl file and the end result was quite scary- users had to boot to EDL via the test point method! Here’s how to avoid all that from happening.
Table of Contents
Which [and How] to Flash XBL File on OnePlus
There exist two different methods to get this job done- automatic and manual. While I have listed both these methods below, but it is highly recommended that you opt for the Automatic Approach. This is because, in the Automatic method, you just need to flash a ZIP file via TWRP [there’s even no need to permanently flash TWRP, you could just temporarily boot to TWRP for one-time usage].
On the other hand, in the Manual Method, you’ll have to manually flash the firmware files in FastbootD Mode via fastboot commands. But before proceeding ahead with any of these two methods, please take a backup beforehand. Droidwin and its members wouldn’t be held responsible in case of a thermonuclear war, your alarm doesn’t wake you up, or if anything happens to your device and data by performing the below steps.
Automatic Method [Recommended]
In this method, you don’t even have to check for the DDR Type as the module which will be flashing the firmware will automatically do this job on your behalf. And that’s not it, the module will automatically flash to both the slots as well!
Manual Method
- First off, check the DDR version for your device: How to Check DDR Version on OnePlus.
- Then download the Fastboot ROM corresponding to your device’s Build Number
- Now extract it and you’ll get payload.bin. Extract that file via Fastboot Enhance Tool.
- This will give you the required files. Transfer them to the platform-tools folder.
- Now boot your device to FastbootD Mode and type in the commands corresponding to the DDR type:
For DDR Type 0 (DDR4)
fastboot flash --slot=all xbl_config xbl_config.img fastboot flash --slot=all xbl xbl.img
For DDR Type 1 (DDR5)
fastboot flash --slot=all xbl_config xbl_config_lp5.img fastboot flash --slot=all xbl xbl_lp5.img
Flashing the Rest of the Firmware Files
Once you have flashed the required DDR4 or DDR5 XBL file, it is also recommended that you flash the rest of the partition files. All these files should be flashed in FastbootD Mode itself. I have listed the commands for OnePlus 8/8 Pro/8T/9R, you should verify the files for your OnePlus firmware, and modify it accordingly, if needed:
OnePlus 8 Firmware Flashing Commands
fastboot flash --slot=all abl abl.img fastboot flash --slot=all aop aop.img fastboot flash --slot=all bluetooth bluetooth.img fastboot flash --slot=all cmnlib64 cmnlib64.img fastboot flash --slot=all cmnlib cmnlib.img fastboot flash --slot=all devcfg devcfg.img fastboot flash --slot=all dsp dsp.img fastboot flash --slot=all featenabler featenabler.img fastboot flash --slot=all hyp hyp.img fastboot flash --slot=all imagefv imagefv.img fastboot flash --slot=all keymaster keymaster.img fastboot flash --slot=all logo logo.img fastboot flash --slot=all mdm_oem_stanvbk mdm_oem_stanvbk.img fastboot flash --slot=all modem modem.img fastboot flash --slot=all multiimgoem multiimgoem.img fastboot flash --slot=all qupfw qupfw.img fastboot flash --slot=all spunvm spunvm.img fastboot flash --slot=all storsec storsec.img fastboot flash --slot=all tz tz.img fastboot flash --slot=all uefisecapp uefisecapp.img
OnePlus 8 Pro Firmware Flashing Commands
fastboot flash --slot=all abl abl.img fastboot flash --slot=all aop aop.img fastboot flash --slot=all bluetooth bluetooth.img fastboot flash --slot=all cmnlib64 cmnlib64.img fastboot flash --slot=all cmnlib cmnlib.img fastboot flash --slot=all devcfg devcfg.img fastboot flash --slot=all dsp dsp.img fastboot flash --slot=all featenabler featenabler.img fastboot flash --slot=all hyp hyp.img fastboot flash --slot=all imagefv imagefv.img fastboot flash --slot=all keymaster keymaster.img fastboot flash --slot=all logo logo.img fastboot flash --slot=all mdm_oem_stanvbk mdm_oem_stanvbk.img fastboot flash --slot=all modem modem.img fastboot flash --slot=all multiimgoem multiimgoem.img fastboot flash --slot=all qupfw qupfw.img fastboot flash --slot=all spunvm spunvm.img fastboot flash --slot=all storsec storsec.img fastboot flash --slot=all tz tz.img fastboot flash --slot=all uefisecapp uefisecapp.img
OnePlus 8T Firmware Flashing Commands
fastboot flash --slot=all abl abl.img fastboot flash --slot=all aop aop.img fastboot flash --slot=all bluetooth bluetooth.img fastboot flash --slot=all cmnlib64 cmnlib64.img fastboot flash --slot=all cmnlib cmnlib.img fastboot flash --slot=all devcfg devcfg.img fastboot flash --slot=all dsp dsp.img fastboot flash --slot=all featenabler featenabler.img fastboot flash --slot=all hyp hyp.img fastboot flash --slot=all imagefv imagefv.img fastboot flash --slot=all keymaster keymaster.img fastboot flash --slot=all logo logo.img fastboot flash --slot=all mdm_oem_stanvbk mdm_oem_stanvbk.img fastboot flash --slot=all modem modem.img fastboot flash --slot=all multiimgoem multiimgoem.img fastboot flash --slot=all qupfw qupfw.img fastboot flash --slot=all spunvm spunvm.img fastboot flash --slot=all storsec storsec.img fastboot flash --slot=all tz tz.img fastboot flash --slot=all uefisecapp uefisecapp.img
OnePlus 9R Firmware Flashing Commands
fastboot flash --slot=all abl abl.img fastboot flash --slot=all aop aop.img fastboot flash --slot=all bluetooth bluetooth.img fastboot flash --slot=all cmnlib64 cmnlib64.img fastboot flash --slot=all cmnlib cmnlib.img fastboot flash --slot=all devcfg devcfg.img fastboot flash --slot=all dsp dsp.img fastboot flash --slot=all featenabler featenabler.img fastboot flash --slot=all hyp hyp.img fastboot flash --slot=all imagefv imagefv.img fastboot flash --slot=all keymaster keymaster.img fastboot flash --slot=all logo logo.img fastboot flash --slot=all mdm_oem_stanvbk mdm_oem_stanvbk.img fastboot flash --slot=all modem modem.img fastboot flash --slot=all multiimgoem multiimgoem.img fastboot flash --slot=all qupfw qupfw.img fastboot flash --slot=all spunvm spunvm.img fastboot flash --slot=all storsec storsec.img fastboot flash --slot=all tz tz.img fastboot flash --slot=all uefisecapp uefisecapp.img
That’s it. These were the steps to flash the xbl or xbl_lp5 file on your OnePlus device along with the rest of the firmware files. If you have any queries concerning the aforementioned steps, do let us know in the comments. We will get back to you with a solution at the earliest.