If you’ve landed on this page, that means you’ve been searching for an easy guide on how to extract your stock firmware from your Android device. While there are many websites that make factory signed firmware’s available for free so you can download and make use of it, most of these free sites do not update the firmware’s on their sites to the latest builds provided by the device manufacturer. So, if you ever encountered an issue that requires that you restore your device with the factory firmware, you only have an older build to use and you’ll have to update your device to the latest build again via OTA update. But we don’t want that.
The option of using an older firmware build isn’t actually a bad choice, the only problem with it is that when you flash an older build, the data required to update to the latest build is much more than the actual firmware itself. Imagine having an OTA update that is about 4GB which is not even an upgrade to a newer OS, just system, UI, security and performance improvements, and you have other updates aside from that before the latest build. That’s wasting of data if you ask me.
It is important to note that there are sites that keep an updated firmware library for all sorts of devices. However, 99.9% of these sites can only be accessed with a monthly subscription. The minimum I’ve seen so far while trying to download the latest build firmware for my device was about $50. Expensive right? But we only need a single device firmware. Maybe if these sites offered cheap payments for individual files, it would have been better. But since we’re not about to pay $50 for one firmware, we will be extracting our device stock firmware from our device itself and save the cash.
In this guide, we’ll be explaining the entire process of extracting stock ROM from an Android device and with it, you can get the firmware of any device without paying a penny to any site. This guide, however, is only useful for MediaTek devices in good condition with no problems whatsoever. If you’ve already bricked your device and hoping to extract your firmware from it to fix it, it won’t work. The best time to extract your device firmware from your device is when it is working fine without any modifications like root etc.
Before we dive into the step-by-step guide on how to backup your MediaTek device firmware, let’s take a look at what the term firmware/ROM means and why you need your device stock firmware/stock ROM.
What is Firmware?
Firmware is a software program or set of instructions programmed on a hardware device. It provides the necessary instructions for how the device communicates with the other hardware components. But how can software be programmed onto hardware? Good question. Firmware is typically stored in the flash ROM of a hardware device. While ROM is “read-only memory,” flash ROM can be erased and rewritten because it is actually a type of flash memory. Definition from The Tech Terms Dictionary.
Why You Need Your Android Phone Stock Firmware/Stock ROM
- It carries the official support by the firmware vendor, device manufacturer and the mobile service carrier.
- Upgrade or downgrade your OS version
- Restore factory default settings
- Recover your device from a brick (whether soft or hard brick)
- Fix hanging or boot loop caused by either a system update or changes you made in your device core files or apps
- Remove virus/malware from the device.
- Completely unroot your device.
- Reset FRP
- For modifying your system files.
- Fix IMEI and baseband issues etc.
With that said, let’s dive into the step-by-step guide on how to extract your stock firmware from your Android device.
How To Extract Your Stock Firmware from Your Android Device
Before we can get a stock ROM out of an Android device, we need the following.
- A computer (laptop/desktop)
- Vcom USB drivers (properly installed) – Download here
- Sp flash tools (latest version) – Download here
- WWR tool (latest version) – Download here
- An Android device (and DA file, if required)
- Your ‘brain’ of course.
Steps To Extract Your Stock Firmware from Your Android Device
If you have your laptop/desktop ready with all the tools needed, then, follow the steps below. Note: The guide we’re about to share is a long guide but to make it simpler, we’ll be dividing the process into four easy steps. The steps are:
- Creating a temporal scatter file for your device readback process.
- Dumping your EMMC_BOOT_1 (Preloader file).
- Dumping your PGPT (to get your firmware details).
- Getting your full ROM length from the PGPT file.
- Dumping your device full ROM.
- Processing the ROM to extract your device flashable firmware.
Step 1. Creating A Temporal Scatter File For Your Device Readback Process
- Create a new folder on your desktop, give it any name you want and in it, create two different folders, name one firmware and name the other folder unprocessed ROM. But really the naming doesn’t matter, the folders can have any name, your choice.
- Now, launch the WWR tool, you’ll see a 120sec delay on your screen. This means it’ll take 2 minutes before the tool opens up the main menu. If you don’t like waiting, you can consider donating to the developers of WWR. Your donation will go a long way and help the developers keep the tool updated and free.
- Once the WWR tool loads up the interface, click on the auto tab. You’ll find a list of option on the page, click on the first option which is ‘generating an empty scatter file.’
- On the generating scatter file option, select your device ‘platform type’ and leave the ‘memory type’ as eMMC.
- After selecting your device platform and memory type, click on the ‘create and save as’ button on the same menu. Select the unprocessed ROM folder as the location to save the new scatter file.
- Now, minimize the WWR tool and check the unprocessed ROM folder, you should have a scatter file ready for SP flash tool use. Open the scatter file with a text editor and minimize it, we’ll need it in the next steps.
Step 2. Dumping Your Device EMMC_BOOT_1 (Preloader File).
You need to power off your phone and have your USB cable connected to your computer for this process.
- Launch SP flash tool, tap on the option menu or hold ctrl+shift+o to open the options/settings window.
- On the general tab, untick check LIB DA match and Storage life cycle check.
- Now, load the scatter file you just generated with WWR tool. If your device is a secured boot device, then, you’ll need a download agent file so that the SP flash tool can read your device. You can find your device download agent file by searching the internet, once you’ve got it, replace it with the default download agent on the SP flash tool.
- Click on the readback tab on the SP flash tool. Click add to add a new property and you’ll notice spflashtool add some infomation under start address, lenght, region and file.
- Double click on the added properties and you’ll get a popup to select a folder to save your files, choose the unprocessed ROM folder and name the file EMMC_BOOT_1.
- A new window (readback block address) should popup immediately after you saved the new file. Leave the type at Hex and change the region to EMMC_BOOT_1.
- Now, open the scatter file you minimized earlier to get the region, start address and length to use for the readback. Fill in the information accordingly, see screenshot below.
- Enter the start address and lenght gotten from the scatter file you created and and click ok once done.
- Connect your device using your USB cable to the computer and wait for the readback process to complete. Once completed, disconnect your phone but don’t power on yet.
- Once the EMMC_BOOT_1 readback is complete, open the unprocessed ROM folder and you will now have a new file with the name EMMC_BOOT_1 and scatter file in the folder.
Step 3. Dumping Your Device PGPT (To Get Your Firmware Details).
The PGPT helps us identify the length of the full ROM to be dumped, so to get it, we’ll repeat step 2, this time, however, we’ll be changing the region while the start and length remain the same.
- On SP flash tool readback tab, double-click on the property you added earlier. And in the popup, choose the unprocessed ROM folder and name the file PGPT and click save.
- Now, on the readback block address change the region to EMMC_USER and enter the start address and length from step 2 and click ok.
- Click on readback and onnect your device again (while still powered off) and wait for the second readback process to complete.
- Once the readback process is done, disconnect your device and processed to the next step.
- Go back to the unprocessed ROM folder, you’ll now have your scatter file, EMMC_BOOT_1, and PGPT file.
Step 4. Getting Your Full ROM Length From The PGPT File
Now that you have the EMMC_BOOT_1 and PGPT files, the two files will give you the necessary partition information’s to extract the full ROM from your device. To extract your MediaTek device firmware from your device, follow the steps below.
- Minimize SP flash tool and open WWR tool, click on select file at the top right corner of the tool, a window will appear. Navigate to the unprocessed ROM folder and select the EMMC_BOOT_1(Preloaded file) you dumped earlier.
- Wait for WWR tool to process the preloader file and you should see some information’s displayed on your screen.
- Now, head over to the table of section tab on WWR tool. The section will be empty, at the top right corner, you’ll see another select file option, click on it and this time select the PGPT file from the unprocessed ROM folder.
- WWR tool will now process the PGPT file and give you your device partition full details.
- On the same window, you’ll find the ‘full volume of GPT’ (which is the length of your full ROM required to dumped your firmware. NOTE: The full ROM is always large and you need about 30-40GB free space on your hard drive.
- Copy the hexadecimal code in the full volume of GPT and paste in your notepad (in my case, I have 0x73A000000).
Step 5. Dumping Your Device Full ROM.
To dump your MediaTek’s device full stock ROM, you’ll repeat step 3, the start address still remains 0x0, however, we’ll be using the new length value gotten from the full volume GPT. Follow the steps below:
- Open SP flash tool one last time, still on the readback tab.
- Double-click on the added property and select the destination to save the file. Name the file Stock ROM and save.
- One the readback block address window, set the region to EMMC_USER, start address 0x0 and enter the values gotten from full volume of GPT as length.
- Click ok and connect your device (while it’s still off). The readback process is going to take some time. You can leave your computer and device to do other things and check back after some time.
- Once the full ROM dump is complete, you can close SP flash tool as it is no longer required for the remaining steps. Also, you can power on your device, it’s no longer needed. In the unprocessed ROM folder, you should now have four files altogther including the new stock ROM file.
Step 6. Processing The ROM To Extract Your Device Flashable Firmware.
Now, we have the full ROM dump of our device but it is still not usable at this point. We have to process the ROM to get the flash file for our device to be usable on smartphone flash tools. To extract your device firmware from the ROM dump, follow the steps below:
- Open WWR tool and click on the select file button at the top right corner of the tool.
- On the popup window, select the Stock ROM file (full ROM) that you just dumped with SP flash tool.
- Now, return to the auto mode tab and click on the third option (start autopilot).
- On the autopilot menu, tick the third option as show in the screenshot and untick every other option that was ticked by default.
- Click on start the process button and WWR tool will open a new window requesting to add the EMMC_BOOT_1 (preloader file) to process the stock ROM file.
- Select the EMMC_BOOT_1 file and WWR tool begin to process the stock ROM. It will take a few minutes, so chill.
- Once the ROM file has been processed, you’ll be taken to the fourth option on the auto mode tab automatically – the assemble firmware option.
- Now, to extract your device firmware, click on the build a clean firmware option and wait for the delay to load completely.
- A new popup will appear immediately the time delay has passed requesting to choose a destination to save the firmware file.
- Choose the firmware folder you created from step 1 and click the save button.
- WWR tool will now build a flashable firmware for your device from the ROM you dumped. The process will take another few minutes, so, sit back and let WWR tool finish the firmware extraction process.
- Once the process is complete, navigate to the firmware folder, you will find your device current build stock firmware that can be used on any smartphone tool to restore your device anytime.
That’s it, you now have your device stock ROM that you can flash using any smartphone flash tools. You can as well take individual firmware components and modify them (if you have the knowledge required) and also flash individual components using smartphone flash tools or fastboot commands.
If this guide on how to extract your stock firmware from your Android device has helped you, kindly uses any of the social media buttons below to share with friends. All queries are welcomed in the comment section below.
SP flash tool is not detecting my device?
You need to install Mediatek Vcom drivers properly on your computer
How to get my device download agent file (DA file)?
Search Google using the format device name – model – keyword (e.g Tecno KB7 da file)
Will this guide work on rooted Android phones?
Yes, however, it is best to extract clean firmware from an unmodified device.
This method don’t work for every devices. And the other thing is there is always a mistake on super partitions dump . WWR don’t support super partitions rom cut