Flashing ROMs can be a tricky process, and sometimes you can end up leaving yourself without a ROM at all, often referred to as a soft brick. If you accidentally wiped your internal memory before a flash or forgot to download the ROM before wiping your system partition, don't worry, there is always a way to get your phone back up and running.
If you find yourself only able to boot into your bootloader menu, there is a special mode in TWRP called ADB sideload that can be used as a last resort for flashing a ROM. It works by connecting to ADB on your computer to flash a .zip file of your choosing. Since this is a slightly more complicated method of flashing a ROM, it should only be used as a safety net.
Before moving on to the actual step-by-step, make sure you have a few basics ready to go.
- Your phone must have an unlocked bootloader since we will be using a custom recovery to enter ADB sideload mode.
- Have ADB installed on your computer.
- Download a copy of your ROM onto your computer and place it on your desktop. Links for stock ROMs can be found in Step 3 below. If you're using a custom AOSP-based ROM, you'll also need a Google Apps package, which can usually be found wherever you got your ROM from.
If you have an unlocked bootloader, then you most likely already have a recovery installed, but if not, you're going to need to flash TWRP to your device using ADB.
- With your phone at the bootloader menu, place it in fastboot mode by connecting it to your computer. To make sure, check that FASTBOOT is highlighted in red. If it is not, select it from the list using the Volume buttons to navigate up and down, then hit the Power button.
- Open up a terminal (command prompt) and make sure your computer can recognize your device by typing fastboot devices and hitting enter/return. As long as you see a device model under that command, you will be good to go.
- Download the latest TWRP for your device, and be sure to download the file under the ADB/Terminal Method section.
- After the download finishes, rename it to TWRP.img and place it on your Desktop.
- Flash TWRP onto your device using the fastboot flash recovery Desktop/TWRP.zip command.
- Reboot your phone using the fastboot reboot-bootloader command.
Since your device only boots into the bootloader menu, all you'll have to do is highlight the Recovery option using the Volume Down button and select it with the Power button. If you do not see the Recovery option, just select Bootloader with the Power button and it should pop up.
Once in TWRP, tap the Advanced option and select ADB Sideload.
From there, you will be given the option to Wipe Cache and Wipe Dalvik Cache partitions, so go ahead and do so by checking the boxes and Swipe to Start Sideload. After it starts, you will be ready to start your ROM flash.
There are many custom ROMs out there for the HTC One M7, so feel free to flash one of those through ADB Sideload. However, if you are looking to just get back to stock Sense, the ARHD team has a ROM.zip on their site.
With your device connected to your computer and your ROM file already on your desktop, you are ready to flash.
- Kill ADB using the adb kill-server command, then restart it with adb usb.
- Make sure your computer can identify your device with the adb devices command.
- Flash your ROM with adb sideload Desktop/ROM.zip (be sure to change "ROM.zip" to the name of your ROM file).
When your ROM has finished being flashed, you will have to restart the ADB sideload process to flash your GApps package (if you're flashing a third-party ROM only). If you flashed a stock HTC ROM, just tap the Reboot System option and you're done. If you need GApps...
- Flash your GApps package using the adb sideload Desktop/GApps.zip command, but change 'GApps.zip' to the name of the GApps package you downloaded for your particular custom ROM.
- Tap Reboot System on your device.
If you are getting an ADB error, cancel the sideload from your phone, unplug and replug your phone, and restart the process (see video).
Now, this won't fix every problem, but a vast majority of ROM issues can be solved by using this method. If you have any questions or just need some general guidance on where to go from here, be sure to leave a comment below.