Introduction: What Flashing Android Firmware Really Means
When you flash Android firmware, you write the phone’s system software — boot, system, recovery and modem partitions — back onto its storage. Technicians reach for this when a phone is stuck in a boot loop or caught in a soft brick after a failed update. It also helps when a phone misbehaves because its software is corrupt.
This guide explains the three low-level modes that make firmware flashing possible — EDL, Fastboot and BROM. You will learn which mode matches your phone’s chipset, what drivers and tools to prepare, and how to flash Android firmware step by step. Everything here is legitimate repair and dead phone recovery, on a device you own or have permission to repair.
EDL, Fastboot and BROM Modes Explained
EDL, Fastboot and BROM are three different doors into the same house, and the chipset decides which doors exist. Fastboot lives in the bootloader and works when the phone can still power on into it. EDL and BROM live in the chip’s read-only boot ROM, so they can reach a phone that will not boot at all.
The mode you use to flash Android firmware depends on two things: the chipset and the state of the phone. A healthy bootloader points to Fastboot. A dead Qualcomm phone points to EDL, and a dead MediaTek phone points to BROM. A dead Spreadtrum or Unisoc phone uses its own boot ROM mode, which behaves much like BROM.
What Is EDL Mode?
EDL stands for Emergency Download Mode, and it is Qualcomm’s last-resort recovery mode. When a Qualcomm phone enters EDL, the PC sees it as a “Qualcomm HS-USB QDLoader 9008” port, even if the screen is black and nothing else works. QFIL talks to the phone through this port, first over a handshake protocol called Sahara and then with a small loader called a Firehose programmer. It is the standard way to unbrick a Qualcomm phone that shows nothing on screen.
What Is Fastboot Mode?
Fastboot mode is a bootloader mode built into most Android phones, and it is the simplest of the three to use. You enter it with a key combination or with an ADB command, and the phone shows a Fastboot screen while the PC sees it as an Android bootloader device. From here you can flash individual partitions — boot, recovery, system, vendor — with the fastboot command, or flash a full factory package with the manufacturer’s own tool.
What Is BROM Mode?
BROM is short for Boot ROM, and it is MediaTek’s equivalent of EDL. When a MediaTek phone is powered off and connected, its boot ROM talks to the PC through a preloader or VCOM port. SP Flash Tool and MTK Client send a download agent through this connection to write the firmware. BROM is the mode you need when a MediaTek phone is dead, stuck at the logo, or caught in a boot loop that recovery cannot fix.
Complete Driver and PC Requirements
The right USB drivers decide whether the flash works at all, and most failures on the bench are driver failures, not firmware failures. Before you flash Android firmware, install the correct driver for your chipset and confirm the PC sees the phone in Device Manager. Qualcomm phones need the Qualcomm HS-USB QDLoader 9008 driver. MediaTek phones need the MediaTek Preloader and VCOM drivers.
Your PC needs Windows 10 or 11, a USB 2.0 port, and a short, good-quality data cable. Use a USB 2.0 port, because USB 3.0 ports cause random disconnects during low-level flashing. Run every flashing tool as administrator and keep your tool and firmware folders on a short path with no spaces, such as C:\Flash.
Drivers You Need for Each Chipset
Match the driver to the chipset, not to the phone brand. Qualcomm uses the QDLoader 9008 driver, MediaTek uses the Preloader and VCOM drivers, and Spreadtrum and Unisoc use the SPD SCI driver. Install the driver for your chipset, then connect the phone in the right mode and watch Device Manager. If the port appears and stays stable, the driver is working.
PC Setup Checklist
Work on a Windows 10 or 11 PC with at least 4 GB of RAM and a few gigabytes of free disk space. Extract the firmware and the flashing tool to a short folder path with no spaces or special characters, and keep the firmware package complete — a missing scatter file or XML file will stop the flash before it starts.
Step-by-Step Guide to Flash Android Firmware
Every firmware flashing job follows the same shape: prepare the PC, put the phone in the right mode, load the correct firmware, and let the tool write without interruption. The phone must be in the correct mode before you connect the cable, and the firmware must match the exact model and region. Do not touch the cable or the PC until the tool says it is done.
Start with the phone powered off and the battery charged to at least 50 percent. If the battery is removable, make sure it is seated properly, because a loose or flat battery is a common cause of mid-flash disconnects. Open Device Manager so you can see the port appear when you connect the phone.
Before You Start: Preparation
Back up anything the customer wants to keep, because flashing usually wipes user data. Confirm the exact model number, chipset and region of the phone, and get the matching firmware package from the manufacturer’s official support page or a trusted source you already use. Extract the firmware and check that it is complete — a scatter file for MediaTek, rawprogram and patch XML files for Qualcomm, or a PAC file for Spreadtrum.
Flashing in Fastboot Mode
Fastboot is the easiest way to flash Android firmware when the bootloader still works, and it is the mode to try first on any phone that can reach its bootloader. Connect the phone in Fastboot mode, open a command window in your platform-tools folder, and confirm the device with the fastboot devices command.
- Power off the phone, then hold Volume Down and Power together to enter Fastboot mode.
- Connect the phone to the PC and run
fastboot devicesto confirm it is listed. - Flash the partitions or run the flash-all script.
- Run
fastboot rebootand wait for the first boot to finish.
Flashing in EDL Mode
EDL is the mode for a dead Qualcomm phone, and it is how you flash Android firmware when the phone will not boot at all. Connect the phone in EDL mode and confirm the PC sees a Qualcomm HS-USB QDLoader 9008 port in Device Manager. Open QFIL, select Flat Build, load the Firehose programmer file from your firmware package, then load the rawprogram XML and the patch XML.
- Power off the phone and enter EDL mode using the key combination, an ADB command, or the test points for your model.
- Connect the phone to a USB 2.0 port and confirm the QDLoader 9008 port appears in Device Manager.
- Open QFIL, set Flat Build, and browse to the Firehose programmer file.
- Click Load XML, select rawprogram0.xml, then patch0.xml when prompted.
- Click Download and let the phone reboot on its own.
Flashing in BROM Mode
BROM is how you flash Android firmware on a dead MediaTek phone, and SP Flash Tool is the standard tool for the job. Open SP Flash Tool as administrator, load the scatter file from your firmware package, and choose Download Only or Firmware Upgrade depending on whether you want to keep the current partition layout.
- Open SP Flash Tool as administrator and load the scatter file.
- Choose Download Only, or Firmware Upgrade if the layout changed.
- Click Download, then connect the powered-off phone while holding the correct key, usually Volume Down.
- Wait for the progress bar to finish and the green check mark to appear, then disconnect the phone.
Using Test Points Safely
Test points are two small copper pads on the phone’s board that force the chip into its boot ROM mode when you short them. You only need them when the phone will not enter EDL or BROM mode any other way, usually because the bootloader or the key combination is broken. Find the test point diagram for your exact model and short the two pads with metal tweezers while you connect the USB cable.
Work with the battery disconnected where the diagram says so, and use clean, fine tweezers so you touch only the two pads. Never short random contacts on the board, and never force a test point on a model you have no diagram for.
Supported Brands, CPUs and Android Versions
You can flash Android firmware on almost every major brand, because the mode follows the chipset. Qualcomm powers phones from Xiaomi, Samsung, OnePlus, Oppo, Vivo, Realme, Motorola, Nokia and many others, and all of them use EDL and Fastboot. MediaTek powers a huge share of Tecno, Infinix, Itel, Walton, Symphony, Realme and Xiaomi Redmi phones, and all of them use BROM and Fastboot.
The Android version matters less than the chipset, because EDL, Fastboot and BROM sit below Android and work the same way from Android 8 through Android 15. What changes with the Android version is the firmware package and the security rules around it. Newer phones often need a signed download agent or an authorized account for BROM and EDL work, and some require the bootloader to be unlocked before Fastboot will accept a flash.
Qualcomm Devices
Qualcomm chips — Snapdragon 400, 600, 700 and 800 series — appear in phones from Xiaomi, Samsung, OnePlus, Oppo, Vivo, Realme, Motorola and Nokia. These phones support EDL and Fastboot.
MediaTek Devices
MediaTek chips — Helio, Dimensity and the older MT65xx and MT67xx series — power Tecno, Infinix, Itel, Walton, Symphony, Realme and Xiaomi Redmi phones. These phones use BROM mode with SP Flash Tool or MTK Client.
SPD / Unisoc Devices
Spreadtrum and Unisoc chips — the SC77xx, SC98xx and T-series — appear in entry-level phones from Samsung, Realme, Nokia, Tecno and Itel. These phones flash through their own boot ROM mode using a PAC firmware file.
Common Error Codes and Real Troubleshooting
Most failures when you flash Android firmware happen at the connection stage, before a single byte is written. If the tool cannot see the phone at all, the problem is the driver, the cable, the USB port or the mode. If the tool sees the phone but fails when it sends the first command, the problem is usually the download agent, the programmer file or the firmware package.
Before you flash Android firmware again after a failure, change one thing at a time and retest. Switch to a USB 2.0 port, swap the cable, reinstall the driver, run the tool as administrator, and confirm the phone is fully powered off before you connect it. Write down what you changed so you know what fixed it when the flash finally works.
Sahara and Firehose Errors (QFIL / EDL)
A Sahara error in QFIL means the first handshake between the PC and the phone’s boot ROM broke, and the firmware was never even read. The log often shows a line like “Download Fail: Sahara Fail” and the flash stops instantly. The usual causes are a Firehose programmer that does not match the chipset, a bad Qualcomm driver, or the 9008 port dropping out mid-handshake.
BROM Error 2005 — S_BROM_CMD_STARTCMD_FAIL
This is the most common SP Flash Tool error, and it means the tool tried to talk to the phone’s boot ROM but the phone booted or responded at the wrong moment. It appears as BROM ERROR: S_BROM_CMD_STARTCMD_FAIL (2005), usually because the phone was powered on too early, the VCOM driver is missing or faulty, the cable is bad, or the download agent is wrong.
DRAM Errors 4032 and 5054
Error 4032 (S_FT_ENABLE_DRAM_FAIL) and error 5054 (S_DL_GET_DRAM_SETTINGS_FAIL) both point to a mismatch between the firmware and the phone’s memory configuration. They usually mean the firmware package belongs to a different model or memory variant, or the scatter file does not match the phone. Stop and verify the exact model, the RAM and storage variant, and the firmware package before you try again.
Error 8038 — PMT Changed
Error 8038 means the partition layout in the firmware package does not match the layout already on the phone. SP Flash Tool reports it as “PMT changed for the ROM” and refuses to write. Switch the flashing mode from Download Only to Firmware Upgrade, which rewrites the partition table to match the package, and try again.
“Waiting for Device” and Device Not Detected
When Fastboot says “waiting for device” or the tool sees nothing at all, the PC is not talking to the phone. Check Device Manager first: if no device appears, the cable, the port or the mode is wrong. If an unknown device appears, the driver is missing — install the right driver for the chipset and point Device Manager at it manually.
Pro Safety Tips and Anti-Brick Precautions
The first rule when you flash Android firmware is to confirm the firmware matches the exact model, region and variant before you write anything. A package for a different variant can write successfully and still leave the phone dead, because the bootloader, modem or partition layout does not fit. Check the model number, compare it with the firmware file name, and do not flash a package you cannot verify.
Never interrupt a flash once it starts. Do not unplug the cable, close the tool, or let the PC sleep or lose power while the tool is writing. Keep the battery charged, use a stable power supply, and flash on a PC you trust. After you flash Android firmware, let the phone finish its first boot, then check the basic functions before you hand it back.
The Pre-Flash Checklist
Run through this list before every flash and you will avoid most bricks. Confirm the model and firmware match, back up the customer’s data, charge the battery, install the right driver, use a USB 2.0 port and a good cable, and extract the firmware to a short path.
Frequently Asked Questions
Technicians ask the same questions about firmware flashing on almost every job, so here are the answers that matter on the bench. Each one is short and practical, and each one assumes you are working on a device you own or have permission to repair. If your question is not here, the troubleshooting section above covers the failures you are most likely to meet.
If you are new to flashing, start with Fastboot on a working phone before you try EDL or BROM on a dead one. The modes get harder as you go down the boot chain, and confidence comes from doing the easy one first. Read the error when a flash fails, fix the stage it points to, and change one thing at a time.
Can I flash Android firmware on any phone?
Yes, you can flash Android firmware on almost any Android phone, as long as you have the correct firmware for that exact model. Qualcomm phones use EDL and Fastboot, MediaTek phones use BROM and Fastboot, and Spreadtrum and Unisoc phones use their own boot ROM mode.
Do I need to unlock the bootloader before flashing?
It depends on the mode. Fastboot flashing often needs an unlocked bootloader, because a locked bootloader will refuse to write most partitions. EDL and BROM work below the bootloader, so they do not need it unlocked.
What if the phone is completely dead and shows nothing?
A phone that shows nothing is not always truly dead. If the chipset is Qualcomm, try EDL mode and look for the QDLoader 9008 port. If it is MediaTek, try BROM mode and look for the preloader port.
Is test point flashing safe for the board?
Test points are safe when you use the correct diagram for the exact model and short only the two pads it shows. They are risky when you guess, because shorting the wrong contacts can damage the board.
Why does SP Flash Tool stop at 0%?
A flash that sits at 0% usually means the tool never caught the phone in BROM mode. The phone is either powered on, the VCOM driver is missing, the cable is faulty, or you connected the phone before clicking Download.
Can I flash firmware on a Mac or Linux PC?
Most of the standard tools — QFIL and SP Flash Tool — are built for Windows, and that is where they work best. On Linux you can use the open-source MTK Client for MediaTek and the open-source EDL tool for Qualcomm, and you can use platform-tools for Fastboot on any system.
Conclusion
Learning to flash Android firmware is one of the most useful skills a phone technician can build, because it turns a dead or boot-looping phone into a working one. EDL, Fastboot and BROM are the three modes that make it possible, and each one has a clear job: Fastboot for a phone that still boots, EDL for a dead Qualcomm phone, and BROM for a dead MediaTek phone. Match the mode to the chipset, use the right driver, and flash the correct firmware.
Keep your drivers ready, your cables good and your firmware verified. When a flash fails, read the error, fix the stage it points to, and try again. Work carefully and never rush a flash.

