Fastboot

Anti-Rollback Protection: Why You Can't Always Flash an Older Firmware Version

Published: July 6, 2026 Applies to: Qualcomm and MediaTek Android devices with anti-rollback (ARB) enforcement

Flashing an older firmware build sounds like it should just work — it's the same device, an image built for it, sent through fastboot the normal way. On many phones it does. But on a growing number of Qualcomm and MediaTek devices, the bootloader refuses certain downgrades outright, sometimes with a cryptic error and sometimes by simply refusing to boot the older image. The mechanism behind this is anti-rollback protection, and unlike most fastboot errors it isn't something a different cable, driver, or platform-tools version fixes.

What Anti-Rollback Actually Is

Anti-rollback protection uses a hardware counter, implemented as a small bank of eFuses on the SoC, that can only be incremented, never decremented. Each firmware build is tagged with a rollback index tied to its security patch level. When certain OTA updates install — typically ones addressing a security vulnerability serious enough that the OEM wants downgrades blocked — the update process burns additional fuses to raise the counter. From that point on, the bootloader compares the rollback index embedded in any image being flashed against the fuse counter, and refuses to boot an image whose index is lower than what's already been burned.

The fuses are physically one-directional. There's no fastboot command, recovery trick, or software downgrade that lowers a blown counter, because doing so would defeat the entire point of the mechanism: preventing an attacker with physical access from flashing a known-vulnerable older build to exploit a since-patched security hole.

Why OEMs Enable This

The threat model is specific: older firmware builds sometimes contain security vulnerabilities in the bootloader, TrustZone, or modem that were fixed in later patches. Without anti-rollback, someone with brief physical access to a locked device could flash an older, vulnerable build and use it to bypass protections that the current build enforces — extracting encrypted data, defeating Factory Reset Protection, or escalating privileges. Anti-rollback closes that path by making the older, exploitable build simply refuse to run on hardware that's already seen the fix. It's the same category of protection as Verified Boot, just enforced at the fuse level instead of at the software signature level.

Checking Whether a Device Has Blown Fuses

Fastboot exposes some anti-rollback state directly, though the exact variable names vary by chipset vendor:

fastboot getvar all

Look through the output for variables containing anti, rollback, or min-ver — naming differs across Qualcomm, MediaTek, and OEM-specific bootloader implementations, and not every device exposes this cleanly through fastboot at all. On Samsung devices in Download Mode, the equivalent concept surfaces as the binary/firmware counter shown on the Odin flashing screen, which increments the same way and is checked the same way, just through a different tool than fastboot.

What a Blocked Downgrade Looks Like

Behavior varies by platform. Some bootloaders reject the flash at the fastboot command itself, returning an explicit error referencing a version or rollback mismatch. Others accept the flash without complaint but then refuse to boot, leaving the device stuck at a splash screen or looping back into fastboot/bootloader mode instead of completing startup. The second case is more confusing to diagnose, because nothing in the flashing tool's output indicated a problem — the rejection happens later, during boot-time verification, not during the write itself.

Practical Implications Before You Flash Older Firmware

There Isn't a Reliable Workaround

Because the protection lives in physical fuses rather than software, there's no config file, patched fastboot binary, or recovery flag that reverses it. Guides claiming to "reset" or "bypass" anti-rollback on a device where the fuses have already blown are describing something the hardware doesn't support; at best they're describing a different chipset's behavior, and at worst they're a path to a hard brick. The only reliable move is flashing firmware at or above the rollback index your device has already reached.

Source: Android Open Source Project — Verified Boot: Rollback Protection