When an over‑the‑air (OTA) update freezes on the progress screen, the device can become unresponsive, battery drain quickly, or even boot into a bootloop. The good news is that most of the time the problem is not a hardware failure – it’s a software hiccup that can be cleared with the Android Debug Bridge (ADB). This tutorial walks you through a safe, no‑root method to recover a stuck OTA update, explains why the issue occurs, and gives you troubleshooting branches for the most common roadblocks.
Android’s OTA mechanism downloads a package, verifies its signature, and then applies the update in a special recovery mode. A freeze can happen at any of these stages:
All of these can be addressed from the host PC using ADB commands that either clear the faulty package, force a reboot into recovery, or manually flash the update.
Backup important data. The recovery process does not delete user data, but a failed flash can leave the device in an unusable state. Use adb backup or your preferred cloud backup service.
Build number seven times.adb devices and see the device listed as device (not unauthorized).adb devices. You should see something like:
List of devices attached
0123456789ABCDEF device
If the status is unauthorized, check the phone for a prompt asking to allow USB debugging and tap Allow.Android stores the OTA zip in /cache under a name such as update.zip or ota_package.zip. We’ll list the cache directory to confirm the file exists.
adb shellls -l /cache. Look for a file with .zip extension and note its size.
drwxrwx--x 3 system cache 4096 2023-01-01 12:00 .
-rw-rw---- 1 system cache 12345678 2023-01-01 12:00 update.zip
If no zip file is present, the update may have already been removed – you can skip to Step 4.
adb pull /cache/update.zip ~/Desktop/ota_candidate.zipRemoving the faulty zip forces the system to re‑download the update or lets you flash a clean package manually.
rm /cache/update.zip
Warning: Do not delete any other files in /cache unless you know what they are.exit.
We now need to get the device into the stock recovery where we can apply a fresh OTA or manually flash a zip.
adb reboot recovery. The phone will power off briefly and display the recovery screen (often a grey Android with the word “Recovery”).From the stock recovery you can usually select “Apply update from ADB”. This tells the recovery to wait for a new zip sent over the USB connection.
adb sideload /path/to/clean_ota.zip
Replace /path/to/clean_ota.zip with the location of the official OTA package you downloaded from the manufacturer’s website (or from a trusted mirror).Some manufacturers hide the OTA package behind the system updater, making it hard to download manually. In that case you can let the device fetch the update itself after clearing the cache.
/cache/update.zip (Step 3), simply reboot the phone normally:
adb reboot
adb kill-server && adb start-server.adb sideloadPower + Volume Down on most devices)./cache after a failed flash, causing background processes to retry. Re‑enter recovery and wipe the cache partition.If the recovery path is unavailable (e.g., the device is stuck in a bootloop and cannot reach recovery), you can use Fastboot to flash the OTA zip directly to the system partition. This method is a bit riskier because it writes system files while the device is in fastboot mode.
Power + Volume Down (varies by manufacturer).fastboot devices.payload.bin and other images).payload_extractor.py script (available in the Android Open Source Project) to split the payload into individual images.fastboot flash boot boot.img
fastboot flash system system.img
fastboot flash vendor vendor.img
Only flash partitions that are present in the OTA; flashing a missing image will abort.
fastboot reboot.Fastboot flashing bypasses the recovery verification step, so be absolutely sure the OTA is intended for your exact model and carrier variant.
If you encounter any of the following, it’s safer to hand the device to a qualified technician:
Recovering a stuck OTA update does not require rooting or flashing custom recoveries. By clearing the corrupted package, rebooting into stock recovery, and using ADB sideload (or fastboot as a fallback), you can bring most Android phones back to a healthy state. The key is to work methodically, keep the device powered, and verify each step before proceeding. With this workflow in your toolkit, a frozen update is no longer a dreaded dead‑end but a solvable hiccup.









