Every Android troubleshooting guide eventually tells you to "boot into recovery" or "boot into the bootloader," usually via a hardware button combination that differs by manufacturer and is easy to get wrong. If the device already has USB debugging enabled, adb reboot with a target argument does the same thing reliably and identically across brands, since it is a software command rather than a hardware key sequence.
Run without any argument, adb reboot simply restarts the device normally, same as a power-cycle from the Android UI. It is the equivalent of Settings > Restart, useful mainly for scripting a clean restart between test runs without touching the device.
adb reboot recovery
Boots into the recovery partition, which on stock firmware shows a minimal Android robot screen with "No command," and on a custom recovery like TWRP or OrangeFox shows a full touch interface. Stock recovery's hidden menu (accessed by holding Power then briefly pressing Volume Up) offers factory reset, cache wipe, and "Apply update from ADB sideload" — useful for installing OTA update packages manually when the automatic OTA mechanism fails.
adb reboot bootloader
Boots into the bootloader, also called Fastboot mode. This is where fastboot commands (flash, erase, format, unlock) operate, as opposed to adb commands, which only work while Android itself is running or the device is in recovery/sideload. Once here, the device stops responding to adb entirely until you flash something and reboot back to Android; switch to fastboot commands for anything further.
adb reboot fastboot
This is easy to confuse with adb reboot bootloader, but on devices with dynamic partitions (most devices launched with Android 10 or later) it boots into a distinct userspace Fastboot implementation called fastbootd, rather than the bootloader-level Fastboot. Fastbootd runs as an Android boot mode with its own minimal userspace, and it is required for flashing logical partitions inside the super partition — system, vendor, and product on A/B devices with dynamic partitioning cannot be flashed from bootloader-level Fastboot at all on these devices. If a flash command that used to work now fails with "this partition doesn't exist" from regular bootloader Fastboot, this distinction is usually why.
adb reboot sideload
Boots directly into recovery with ADB sideload mode already active, skipping the menu navigation needed to reach it manually. Once booted, the device only accepts a single command, adb sideload <path-to-zip>, which streams a signed update package or custom ROM zip directly without needing to copy it onto device storage first. This is the fastest path for installing an OTA zip on a device with little free internal storage, since the file never has to be written to the device before installation.
On Qualcomm-based devices, this attempts to boot into Emergency Download Mode, the lowest-level flashing mode used for unbricking a device that will not even enter Fastboot. It only works if Android is still running well enough to process the ADB command in the first place; a device already bricked past that point needs the hardware button combination or a test point method instead, since there is no software command that can reach a device that cannot boot at all.
bootloader (or fastboot for logical partitions on newer devices).sideload.recovery.Not every device honors every target string. Some manufacturers ship a stripped-down recovery partition with no ADB sideload support built in, in which case adb reboot sideload either falls back to a plain recovery boot or returns an error rather than landing in sideload mode. Similarly, adb reboot edl only has any effect on Qualcomm platforms; running it against a MediaTek or Exynos device is simply ignored, since EDL is a Qualcomm-specific boot ROM feature with no equivalent target string on other chipsets. If a reboot command appears to do nothing, check whether the device and firmware actually support that specific mode before assuming the ADB connection itself is broken.
Every mode switch is a full device re-enumeration on the USB bus, not a soft transition, which means the previous ADB session ends and a new one has to establish itself once the device settles into the new mode. Scripts that chain multiple reboot commands together need a short wait and a retry loop after each transition rather than issuing the next command immediately, since adb or fastboot commands sent before the device finishes re-enumerating simply time out with no device found, even though the switch itself worked correctly.