How to Flash a Custom ROM without TWRP Recovery

In this tutorial, we will show you how to flash any custom ROM without using TWRP Recovery. Android devices usually behold a plethora of customizations. From installing launchers and icon packs to trying out numerous font styles,. there’s no stopping you. But this is just the tip of the iceberg. These are just some of the tweaks that an everyday user effectively carries out. But then how could one make their device stand out from the crowd. Well, there is just one requirement that your device needs to qualify, and one you bypass that, you have literally opened the floodgates to the plenitude of modifications. That requirement is an unlocked bootloader.

Many OEMs ship their devices with a locked bootloader. The reason on their part is perfectly simple- they only want the user to try out the stock OS experience that they have shipped. But then, here is the problem. Not everyone is a fan of this stock ecosystem and they want a change from this. Enters the concept of an unlocked bootloader. Once you do so, you could carry out an ocean of tweaks, with the ability to install custom ROMs occupying the top spot.

There are quite a few big players in this domain. These include the LineageOS, HavocOS, Pixel Experience, and many others. Apart from installing custom ROMs, you could replace stock recovery with a custom one like TWRP, or even gain admin privileges by rooting your device via Magisk (with or without TWRP). Likewise, tons of Magisk Modules, Xposed Frameworks mods, and Substratum themes are all waiting for you.

Fortunately, most of these tweaks could effectively be carried out without even using a TWRP Recovery. But there has been this long-standing doubt as to whether one could flash a custom ROM without even installing TWRP Recovery. In this guide, we will address this question in the best possible manner and then list out detailed steps to achieve this. Follow along.



Why Flash a Custom ROM without TWRP

There is no denying the fact that TWRP beholds quite a lot of useful functionalities. Not only the installation of custom ROMs, ZIPs, and IMGs, but there is also an option to create Nandroid backup, wipe device partitions, and carry out advanced functionalities like Fixing bootloop, Recovery Ramdisk, Terminal Window among others. So why would anyone want to part its way with this custom recovery?

The reason stands simple- not every device has a working TWRP Recovery. For some there exists a direct official build, for others an unofficial build that developers have created and could be accessed via forums like XDA. But even if we combine these two, there exist a plethora of other devices that are left bereft of working custom recovery like TWRP.

That is why one of our main focus always remains to give equal weights to the devices without a TWRP recovery. For example, you could root any Android device without TWRP or even permanently flash TWRP just by using its IMG file (without the need of TWRP ZIP). So while we could effectively deal with them, could we also install a custom ROM via TWRP Recovery? The answer is YES, YOU COULD FLASH A CUSTOM ROM WITHOUT TWRP. How? Let’s check it out!



How to Flash a Custom ROM without TWRP

Just to simplify the explanation process, let’s take the practical route. Here are the contents of a custom ROM (HavocOS).

Setup-Success
Payload.bin having other partition files

As you could see, near about all the contents have been kind of compressed inside a single file- payload.bin. So this straight out signifies that all the important files are present inside this single file. Now the all-important question- how to extract the content of this file?

For that, you will need Python installed onto your PC. Yes, the steps might seem daunting at first, but trust us this is just a one-time process. From the second time onwards, you would only have to exert 10% of the efforts. With that said, head over to the below requirements section and get yourself acquainted with the required tools.

Prerequisites

  • For extracting the Payload.bin file, you need a Payload Dumper Tool. We would like to thank Gregory Montoir for creating this tool. You could download it from the following link: payload_dumper.zip
  • Likewise, you should also have to install Python on your PC. Download Python v3.8.5 (latest version at the time of writing).

That’s all you need to flash a custom ROM without TWRP. Now proceed with the installation steps. Just make sure that you are double-sure what you are doing. DroidWin or any of its members won’t be held responsible in case anything happens to your device. However, if that happens, the comments section is all yours. Drop-in your queries and we will get back with a solution.



STEP 1: Install Python on your PC

  1. Launch the Python EXE set up file. It will then ask for the installation directory. Click on Install Now if you wish to proceed with the default one, which would make it easier for you to follow this guide. Or you could also click Customize Installation if you want to change the directory.
    python setup
  2. Whatever installation directory you end up choosing, make sure to keep a note of it as it will be needed later on. The installation process will be completed within a minute or two. When that is done, hit the Close button to exit the setup wizard.
    Setup-Success

STEP 2: Install Payload Dumper file

Now that you have installed Python, you could proceed with the extraction of the Payload.bin file. For that, we will be making use of the Payload Dumper Tool. Follow the below steps for that:

  1. Extract all the contents of the Payload Dumper Tool inside the folder where you have extracted Python.
  2. If you have chosen the default directory while installing Python, then the contents should be extracted inside:
    C:\Users\USER-NAME\AppData\Local\Programs\Python\Python <version number>

STEP 3: Extract Payload.Bin

  1. Now copy the payload.bin file from the Custom ROM and move it to the folder where you have installed Python.
  2. Hence, this directory will now have the Payload Dumper Tool, the payload.bin file, and the Python software.
    payload-bin-dumper-inside-python
  3. Inside the same folder, type in CMD in the address bar and hit Enter. This will launch the Command Prompt.
  4. Type in the below command to install the necessary dependencies:
    python -m pip install -r requirements.txt

    payload-bin-dumper-inside-python

  5. Finally, execute the below command to extract all the contents of the payload.bin file. It will take some time, depending on the size of the package.
  6. In our case, the payload.bin file gave us three files: boot, system, and vendor. In some cases, you could also get dtbo, and a couple of other files as well. That is not an issue. We will show you how to deal with that as well.
    custom-rom-extracted-images
  7. Anyways, moving on, once the process is complete, all the extracted files be placed in a folder named Output. If you have installed python in the default directory, then the location of the output folder will be:
    C:\Users\USER-NAME\AppData\Local\Programs\Python\Python<version-number>/Output

    payload-bin-dumper-inside-python

Now we would be using these files. Head over to the below instructions to complete the process of flashing custom ROM without TWRP Recovery.



STEP 4: Wipe Device Partitions via Fastboot Commands

Well. before flashing any custom ROM, you will also have to wipe off various device partitions. These include wiping the data partition, system partition doing a complete factory reset to decrypt the data, etc. However, different ROMs follows the different procedure in this regard, hence you might have to check the ROM thread or their official website.

If you still face any issues, then you could inform me via the comments section (please include the device and the ROM name as well). The general commands usually include the ones that we have mentioned below, however, it is better to check with the ROM developers what they instruct to wipe.

fastboot erase userdata // erase data partiton
fastboot -w // factory reset
fastboot erase system // erase system partiton- before flashing a new ROM

STEP 5: Flashing the Custom ROM Files Manually

Now that we have extracted all the contents of the custom ROM, its time to install them onto your device. Here is how to flash the custom ROM onto your device without the TWRP Recovery. We would only be making use of the fastboot commands.

  1. Download and install the Android SDK Platform-Tools folder on your PC.
  2. Now enable Developer Options onto your device followed by USB Debugging. Then connect your device to PC via USB cable.
  3. Also, transfer all the extracted files (boot, system, and vendor, etc) to the platform-tools folder as well.
  4. Inside this same platform-tools folder, type in CMD in the address bar, and hit Enter. This will launch the Command Prompt.
    command prompt twrp
  5. Now type in the below command to boot your device to fastboot/bootloader mode:
    adb reboot bootloader

    fastboot mode xiaomi device
    Fastboot Mode in Xiaomi
  6. Once your device boots to fastboot mode, type in the following commands to flash the files. To begin with, we would be flashing the system.img file as follows:
    fastboot flash system system.img
  7. Next up, flash the boot.img file as follows:
    fastboot flash boot boot.img
  8. Finally, we will be flashing vendor.img file:
    fastboot flash vendor vendor.img
  9. Apart from that, if your custom ROM has some other files as follows, you could make use of the below commands:
    fastboot flash vbmeta vbmeta.img
    fastboot flash oem oem.img
    fastboot flash logo logo.bin
    fastboot flash boot boot.img
    fastboot flash dtb dtb.img
    fastboot flash dtbo dtbo.img

These are some of the files that you are likely to come across. If apart from them if you find any other files as well (rare, but the possibility is still there), then do let us know in the comments. We will provide the fastboot commands of that file as well.

Flashing Instructions for Devices with A/B Partitions

If your device is A/B partition, then there is will be a slight variation in the commands. Some devices require the flashing of files to the current active slot, whereas others require to be flashed to both the slots. Here is the example for both.



For Device with Current Active Slot “A” (or ‘B”)

If your device has the current active slot as A, then the below commands will be handy. On the other hand, if it is B, then don’t consider switching slots. It might happen that your inactive slot might not have the OS installed, and you could end up in a bootloop. Rather a much safer approach will be to just change the ‘a’ keyword with ‘b’ in the below commands.

fastboot flash vbmeta_a vbmeta.img 
fastboot flash oem_a oem.img 
fastboot flash logo_a logo.bin 
fastboot flash boot_a boot.img 
fastboot flash dtb_a dtb.img 
fastboot flash dtbo_a dtbo.img

Devices that require Flashing to Both the Slots

Let us suppose you have to flash the system.img file to both the partitions. Then the command will be

fastboot flash system_a system.img
fastboot flash system_b system.img

You could modify this command accordingly for all the partitions that you need to flash. But if you aren’t sure then please don’t for a hit and trial approach. Rather, drop in your queries in the comments below. So with that said, this was all from this guide on how to flash a custom ROM without TWRP Recovery. We hope we were able to clear off all your doubts, if not you own the comments section!


Share: