Fastboot is one of the most useful command-line tools for working with Android devices at the bootloader level. It is commonly used when installing firmware, flashing boot or recovery images, unlocking a bootloader, changing active slots, working with dynamic partitions, and troubleshooting certain boot-related problems.
Unlike ADB, which normally communicates with Android while the operating system is running, Fastboot communicates with the device’s bootloader or with fastbootd, Android’s userspace Fastboot environment. The Fastboot protocol itself is designed for communication between a computer and a bootloader over USB or, on supported implementations, Ethernet.
Google‘s Android SDK Platform-Tools package includes both ADB and Fastboot. Google recommends using the latest Platform-Tools because newer Fastboot features are generally designed to remain backward compatible with older Android versions. The current Platform-Tools release information lists version 37.0.1 from July 2026.
This guide explains the most important Fastboot commands, what they do, and examples of how they are commonly used.
Table of Contents
What Is Fastboot?
Fastboot is a command-line utility that allows a computer to communicate directly with an Android device’s bootloader. It can transfer images to the device, flash supported partitions, erase partitions, read bootloader variables, reboot into different modes, and perform other low-level operations.
Fastboot commands generally need to be executed while the phone is in Bootloader/Fastboot Mode. A device can often be sent into bootloader mode with:
adb reboot bootloaderAfter the phone enters bootloader mode, you can check whether the computer can communicate with it using:
fastboot devicesAndroid’s official documentation notes that bootloader mode is required for issuing Fastboot commands, although the exact method for entering that mode can differ between devices.
Important: Fastboot commands can modify or erase important partitions. A wrong command or incorrect image can cause boot failures or data loss. Always use firmware and commands intended for your exact device model and software version.
How to Check Whether Fastboot Is Working
Before using any flashing command, start by checking the connection.
1. Check connected Fastboot devices
fastboot devicesExample output:
ABC123456789 fastbootIf a device serial number appears, the computer is communicating with the phone through Fastboot.
If nothing appears, check the USB cable, drivers, USB port, Platform-Tools installation, and whether the phone is actually in Fastboot mode.
2. Show detailed device information
fastboot getvar productExample:
fastboot getvar productThis asks the bootloader for the product/device identifier.
You can also check several commonly useful variables:
fastboot getvar version
fastboot getvar version-bootloader
fastboot getvar serialno
fastboot getvar secure
fastboot getvar is-userspaceThe Fastboot specification defines variables such as version, version-bootloader, product, serialno, secure, and is-userspace.
Basic Fastboot Commands
1. fastboot devices
This is usually the first command to run.
fastboot devicesPurpose: Lists devices connected in Fastboot mode.
Example:
fastboot devicesOutput:
R58M1234567 fastbootIt is useful for confirming that the connection is ready before flashing anything.
2. fastboot --version
fastboot --versionPurpose: Displays the installed Fastboot version.
Example:
fastboot --versionThis can help determine whether an old Platform-Tools installation is being used.
3. fastboot --help
fastboot --helpPurpose: Displays the commands and options supported by the Fastboot binary installed on your computer.
This is particularly important because Fastboot features can change between Platform-Tools releases, and OEM bootloaders may support different commands.
4. fastboot help
fastboot helpPurpose: Displays Fastboot’s command help.
For the most accurate command list for your installation, running fastboot --help is preferable to relying on a generic online list.
Reboot Commands
5. fastboot reboot
fastboot rebootPurpose: Reboots the device normally.
Use this after completing a Fastboot operation when you want Android to start.
6. fastboot reboot bootloader
fastboot reboot bootloaderPurpose: Reboots the device back into bootloader/Fastboot mode.
This is useful when you need to perform several flashing operations without manually entering Fastboot mode again.
7. fastboot reboot-bootloader
fastboot reboot-bootloaderPurpose: Reboots directly back into the bootloader.
The command is especially useful in firmware workflows that require the bootloader to be restarted before additional operations are performed.
8. fastboot reboot fastboot
fastboot reboot fastbootPurpose: Reboots a supported device into fastbootd.
Fastbootd is different from the traditional bootloader Fastboot environment. Modern Android devices using dynamic partitions may require fastbootd for certain partition operations. Android’s documentation describes bootloader Fastboot and userspace Fastboot as separate environments.
9. fastboot reboot recovery
On devices supporting this command:
fastboot reboot recoveryPurpose: Reboots into recovery mode.
Support can depend on the device’s bootloader implementation.
Bootloader Unlock Commands
Bootloader unlocking is one of the most common reasons people use Fastboot.
10. fastboot flashing get_unlock_ability
fastboot flashing get_unlock_abilityPurpose: Checks whether the bootloader is configured to allow unlocking.
A device may return a value such as:
(bootloader) get_unlock_ability: 1A value of 1 generally indicates that unlocking is permitted by the bootloader.
11. fastboot flashing unlock
fastboot flashing unlockPurpose: Requests bootloader unlocking on devices that use the standard Android Fastboot unlocking mechanism.
Android’s official documentation notes that unlocking normally requires the device’s unlock capability to be enabled. The unlocking process can also erase user data as a security measure.
On many phones, you must first enable OEM unlocking in Developer Options.
12. fastboot flashing lock
fastboot flashing lockPurpose: Relocks the bootloader on supported devices.
Do not use this command blindly after installing modified software. A device should normally be returned to an appropriate official software state before relocking.
13. fastboot flashing unlock_critical
fastboot flashing unlock_criticalPurpose: Enables flashing of critical bootloader-related partitions on devices that support this mechanism.
This is an advanced command and should only be used when the device’s flashing instructions specifically require it.
14. fastboot flashing lock_critical
fastboot flashing lock_criticalPurpose: Locks critical bootloader-related partitions again.
The standard Fastboot tool includes separate commands for ordinary and critical bootloader locking.
Flashing Commands
15. fastboot flash
This is one of the most important Fastboot commands.
Basic syntax:
fastboot flash <partition> <image>Example:
fastboot flash boot boot.imgThis writes boot.img to the boot partition.
Another example:
fastboot flash recovery recovery.imgThe exact partitions available depend on the device.
Fastboot’s command reference defines flash as writing an image to a specified flash partition.
Common examples
fastboot flash boot boot.img
fastboot flash vendor vendor.img
fastboot flash system system.img
fastboot flash vbmeta vbmeta.imgImportant: Do not assume that every phone has all of these partitions as directly flashable partitions. Modern Android devices can use dynamic partitions and other layouts.
16. fastboot flash boot
fastboot flash boot boot.imgPurpose: Flashes a boot image to the boot partition.
This is frequently used when testing a modified or patched boot image.
17. fastboot flash recovery
fastboot flash recovery recovery.imgPurpose: Flashes a recovery image on devices that have a dedicated recovery partition.
Newer Android devices may use different recovery arrangements, so this command is not universally applicable.
18. fastboot flash vendor
fastboot flash vendor vendor.imgPurpose: Writes a vendor image to the vendor partition.
Only use the image supplied for the exact device/build.
19. fastboot flash system
fastboot flash system system.imgPurpose: Flashes a system image to the system partition when the device’s partition layout supports this operation.
Dynamic partition devices may require fastbootd instead.
20. fastboot flash vbmeta
fastboot flash vbmeta vbmeta.imgPurpose: Flashes a vbmeta image.
Verified Boot uses metadata to verify parts of the Android software stack. Incorrectly flashing or modifying vbmeta can prevent the phone from booting.
Boot Image Without Flashing
21. fastboot boot
fastboot boot boot.imgPurpose: Downloads a boot image and attempts to boot it directly rather than permanently flashing it to a partition.
This can be useful for testing a compatible boot image.
The current Fastboot source describes boot as downloading and booting a kernel from RAM.
Whether a particular device permits this operation depends on its bootloader and security configuration.
22. fastboot flash:raw
fastboot flash:raw boot boot.imgPurpose: Creates a boot image from the supplied components and flashes it.
The command also supports supplying a kernel, ramdisk and, where applicable, a second image component.
For example:
fastboot flash:raw boot kernel ramdisk.imgThis is mainly an advanced development command rather than a normal consumer flashing command.
Erase and Format Commands
23. fastboot erase
fastboot erase <partition>Example:
fastboot erase userdataPurpose: Erases the specified partition.
Another example:
fastboot erase systemHowever, erasing a system or other important partition can leave the phone unable to boot until appropriate software is flashed.
Android’s Fastboot specification defines erase as clearing the selected partition.
24. fastboot -w
fastboot -wPurpose: Wipes user data and cache where supported.
This is commonly used during certain clean-flash procedures.
Warning: It can remove personal data from the device.
Android’s current Fastboot implementation describes -w as erasing userdata and cache and formatting them where the partition type supports it.
25. fastboot format
Basic syntax:
fastboot format <partition>Example:
fastboot format userdataYou can also specify a filesystem type on supported configurations:
fastboot format:ext4 userdataThe exact syntax and filesystem support depend on the Fastboot implementation and device.
Slot and A/B Device Commands
Modern Android devices may use A/B slots so that system updates can be installed to an inactive slot.
26. fastboot getvar current-slot
fastboot getvar current-slotPurpose: Shows the currently active slot.
Possible output:
(bootloader) current-slot: aor:
(bootloader) current-slot: b27. fastboot set_active
fastboot set_active aor:
fastboot set_active bPurpose: Changes the active slot on devices that support slots.
The Fastboot implementation provides set_active specifically for selecting the active slot.
Be careful when changing slots manually. The alternate slot may not contain a bootable Android installation.
28. fastboot --slot
The --slot option can be used to select a slot for applicable commands.
Example:
fastboot --slot=a flash boot boot.imgAnother example:
fastboot --slot=b flash boot boot.imgThis is useful when working with A/B partition layouts.
Fastboot Variables
29. fastboot getvar
Basic syntax:
fastboot getvar <variable>Example:
fastboot getvar productOther useful examples include:
fastboot getvar serialno
fastboot getvar version
fastboot getvar version-bootloader
fastboot getvar secure
fastboot getvar is-userspace
fastboot getvar current-slotFastboot’s protocol specification includes variables for the Fastboot protocol version, bootloader version, product name, serial number, security state and whether the device is running userspace Fastboot.
About fastboot getvar all
You may see this command in many Android guides:
fastboot getvar allIt asks the device for a broad set of bootloader variables on implementations that support the behavior.
However, output varies by device and bootloader, so it should not be treated as a universal list of variables.
Dynamic Partition Commands
Dynamic partitions are an important part of modern Android devices. They are managed through the super partition and can behave differently from traditional physical partitions.
30. fastboot is-userspace
fastboot getvar is-userspaceIf the output indicates:
is-userspace: yesthe device is running fastbootd rather than bootloader Fastboot.
31. fastboot getvar is-logical
fastboot getvar is-logical:systemPurpose: Checks whether a partition is a logical partition.
The Fastboot protocol defines is-logical:<partition> for determining whether a partition is logical or physical.
32. fastboot create-logical-partition
fastboot create-logical-partition <name> <size>Example:
fastboot create-logical-partition test 100000000Purpose: Creates a logical partition with the specified name and size inside the super partition.
This is an advanced command and should not be used unless the device’s flashing instructions require it.
33. fastboot delete-logical-partition
fastboot delete-logical-partition <name>Example:
fastboot delete-logical-partition product_aPurpose: Deletes a logical partition.
This command can be useful during specialized GSI or dynamic-partition procedures. Android’s official GSI documentation gives delete-logical-partition as an example for freeing space when a system partition cannot be resized.
34. fastboot resize-logical-partition
fastboot resize-logical-partition <name> <size>Example:
fastboot resize-logical-partition system_a 4000000000Purpose: Changes the size of a logical partition.
The partition size must be appropriate for the device’s super-partition layout.
35. fastboot wipe-super
fastboot wipe-superPurpose: Resets the super partition to an empty set of default dynamic partitions.
Some implementations also accept a supplied empty super image:
fastboot wipe-super super_empty.imgThis is a powerful operation and should only be performed when a device-specific flashing procedure calls for it.
The current Fastboot command set includes wipe-super, along with commands for creating, deleting and resizing logical partitions.
36. fastboot update-super
fastboot update-super super.imgPurpose: Updates the super partition using an appropriate super image.
Android’s Fastboot documentation describes update-super as a special operation for a super image created by lpmake; its behavior differs from a normal flash operation.
GSI and Fastbootd Commands
37. fastboot gsi wipe
fastboot gsi wipePurpose: Removes or wipes a GSI installation on supported fastbootd implementations.
38. fastboot gsi disable
fastboot gsi disablePurpose: Disables a GSI installation where the device supports the command.
The current Fastboot implementation lists both gsi wipe and gsi disable as fastbootd commands.
39. Flashing a GSI
A simplified example on a compatible device may look like:
fastboot reboot fastboot
fastboot erase system
fastboot flash system system.img
fastboot -w
fastboot rebootHowever, GSI installation is highly device-dependent. Android’s documentation specifically warns that there is no single universal GSI flashing procedure for every Android device.
Therefore, the device manufacturer’s instructions and the specific GSI documentation should take priority over a generic command sequence.
Update and Factory-Image Commands
40. fastboot update
fastboot update update.zipPurpose: Reflashes a device using a compatible update package.
The package and device must be compatible with the Fastboot implementation being used.
41. fastboot flashall
fastboot flashallPurpose: Flashes the partitions defined by the available factory/build configuration.
The exact behavior depends on the Fastboot build and the files available to it. Current Android source describes flashall as flashing major images such as boot, system and vendor, with recovery where applicable.
This is generally intended for complete device flashing rather than changing a single partition.
Snapshot-Based Update Commands
Modern Android devices can use snapshot-based updates.
42. fastboot snapshot-update
The command supports operations such as:
fastboot snapshot-update canceland:
fastboot snapshot-update mergecancel cancels an in-progress snapshot update, while merge can finish an update that is in the merging phase on supported devices.
These are advanced recovery/development commands and should not normally be used without understanding the device’s update state.
Fetching Partition Images
43. fastboot fetch
fastboot fetch <partition> <output-file>Example:
fastboot fetch boot boot_backup.imgPurpose: Fetches a partition image from the device and saves it to a file where the device and Fastboot implementation support the operation.
The current Fastboot source lists fetch PARTITION OUT_FILE as the command for fetching a partition image from the device.
OEM Commands
44. fastboot oem
fastboot oem <command>Example:
fastboot oem device-infoPurpose: Sends an OEM-specific command to the bootloader.
The important point is that fastboot oem does not represent one universal command. Manufacturers can implement their own OEM commands.
For example, one manufacturer may support:
fastboot oem device-infowhile another may use completely different commands.
The current Fastboot source describes OEM commands as OEM-specific, so users should follow the documentation for their particular manufacturer and device.
Selecting a Specific Device
45. fastboot -s
When multiple Fastboot devices are connected, you can select one using its serial number.
Example:
fastboot -s ABC123456789 devicesOr:
fastboot -s ABC123456789 getvar productThis is useful when several phones or emulators are connected simultaneously.
Using a Specific Slot
46. fastboot --slot
Example:
fastboot --slot=a flash boot boot.imgYou can also use:
fastboot --slot=b flash boot boot.imgOn compatible A/B devices, this tells Fastboot which slot should be targeted.
The available slot behavior depends on the device’s partition configuration.
Useful Fastboot Options
Fastboot also provides options that modify how commands are executed.
-w
fastboot -wWipes user data and cache where supported.
-s
fastboot -s SERIAL_NUMBER <command>Selects a specific connected device.
--slot
fastboot --slot=a <command>Selects a target slot on compatible devices.
-S
fastboot -S 100M flash system system.imgControls automatic sparse-file handling for large images.
-i
fastboot -i 0x18d1 devicesSpecifies a USB vendor ID in configurations where this option is supported.
-u
fastboot -u format userdataPrevents the erase-before-format behavior where applicable.
The exact available options can differ with Fastboot versions, which is another reason to check:
fastboot --helpThe Android Fastboot source lists options including -w, -u, -s, -p, -i, -S, and slot-related options.
Common Fastboot Commands at a Glance
| Command | Main Purpose |
|---|---|
fastboot devices | Check connected Fastboot devices |
fastboot --version | Check Fastboot version |
fastboot --help | Display supported commands |
fastboot getvar product | Check device/product name |
fastboot getvar current-slot | Check active slot |
fastboot getvar is-userspace | Check whether fastbootd is active |
fastboot reboot | Reboot normally |
fastboot reboot bootloader | Reboot to bootloader |
fastboot reboot-bootloader | Reboot to bootloader |
fastboot reboot fastboot | Reboot to fastbootd |
fastboot flashing unlock | Unlock bootloader |
fastboot flashing lock | Lock bootloader |
fastboot flashing get_unlock_ability | Check unlock availability |
fastboot flash | Flash an image |
fastboot boot | Temporarily boot an image |
fastboot erase | Erase a partition |
fastboot format | Format a partition |
fastboot -w | Wipe userdata/cache |
fastboot set_active | Select active slot |
fastboot update | Flash a compatible update package |
fastboot flashall | Flash supported factory images |
fastboot gsi wipe | Wipe GSI on supported devices |
fastboot gsi disable | Disable GSI on supported devices |
fastboot wipe-super | Reset dynamic partition layout |
fastboot create-logical-partition | Create logical partition |
fastboot delete-logical-partition | Delete logical partition |
fastboot resize-logical-partition | Resize logical partition |
fastboot update-super | Update super partition |
fastboot snapshot-update | Manage snapshot update state |
fastboot fetch | Retrieve a partition image |
fastboot oem | Run OEM-specific command |
Fastboot vs ADB: What Is the Difference?
Fastboot and ADB are related Android tools, but they operate at different stages.
| Feature | ADB | Fastboot |
|---|---|---|
| Normal Android running | Yes | Usually no |
| Bootloader communication | No | Yes |
| Install APKs | Yes | No |
| Access Android shell | Yes | No |
| Flash partitions | No | Yes |
| Unlock bootloader | No | Yes, on supported devices |
| Reboot to bootloader | Yes | Yes |
| Read bootloader variables | No | Yes |
| Work with fastbootd | No | Yes |
ADB is primarily intended for communicating with Android’s adbd service, while Fastboot communicates with the bootloader/fastboot environment. Both are included in Android SDK Platform-Tools.
How to Use Fastboot Safely
Fastboot is powerful, but it should not be treated like a normal Android command-line utility. A mistake involving the wrong partition or image can result in a non-booting device or permanent data loss.
Before flashing anything, check the following:
1. Confirm the exact phone model
Do not flash an image simply because its filename looks similar to your phone’s model.
2. Check the active slot
On an A/B device:
fastboot getvar current-slot3. Check the product name
fastboot getvar product4. Make sure the bootloader is allowed to flash
Some devices require an officially supported bootloader-unlocking process.
5. Use the latest Platform-Tools
Google recommends the latest SDK Platform-Tools package because newer versions include newer Fastboot functionality while maintaining broad backward compatibility.
6. Keep the correct firmware files ready
Use images specifically intended for your device and software build.
7. Avoid random erase commands
Commands such as:
fastboot erase systemor:
fastboot wipe-supercan have serious consequences.
8. Understand dynamic partitions
On newer Android phones, a partition may be logical rather than a traditional physical partition. Some operations may therefore need to be performed through fastbootd instead of the bootloader Fastboot environment.
Common Fastboot Errors
waiting for any device
If you see:
< waiting for any device >the computer is not detecting the phone through Fastboot.
Try:
- Reinstalling the Android USB driver.
- Using another USB cable.
- Trying another USB port.
- Confirming that the phone is in Fastboot mode.
- Installing the latest Platform-Tools.
- Running
fastboot devices.
FAILED (remote: 'Flashing is not allowed')
This usually indicates that the bootloader is locked or the particular partition cannot be flashed in the current state.
Check the device’s official unlocking requirements before proceeding.
Unknown command
An unknown-command error usually means that the command is not implemented by the Fastboot binary or the connected bootloader.
For example, an OEM-specific command may work on one manufacturer’s device and fail on another.
Not enough space to resize partition
This can occur when working with dynamic partitions or GSI installations.
Android’s GSI documentation describes this type of error and provides device-specific examples involving logical partitions.
Do not randomly delete partitions to solve the problem. Follow the flashing instructions for the exact device.
Frequently Asked Questions
What is the most commonly used Fastboot command?
fastboot devices is generally the first command to use because it confirms whether the computer can communicate with the phone in Fastboot mode.
Does Fastboot erase data?
Not every Fastboot command erases data. However, commands such as:
fastboot -wcan wipe user data, and bootloader unlocking can also trigger a factory reset.
Can Fastboot install APK files?
No. APK installation is normally handled through ADB, for example:
adb install app.apkFastboot is intended for bootloader-level operations such as flashing images and controlling supported partitions.
Can Fastboot unlock every Android phone?
No. Unlocking depends on the device manufacturer, model, bootloader configuration and regional/software restrictions. Android’s standard unlocking mechanism is available only on devices that permit it.
What is Fastbootd?
Fastbootd is the userspace version of Fastboot. It is particularly important on modern Android devices using dynamic partitions, where certain partition operations cannot be performed by the traditional bootloader Fastboot environment.
Is fastboot erase system safe?
It is not a command that should be used casually. Erasing a system partition can make Android unable to boot until the correct system software is restored.
What is the difference between fastboot reboot and fastboot reboot bootloader?
fastboot reboot normally starts Android, while fastboot reboot bootloader sends the phone back into bootloader mode.
How can I see the Fastboot commands supported by my PC?
Run:
fastboot --helpThis shows the commands supported by the Fastboot binary installed on your computer.
Final Words
Fastboot remains an important tool for Android troubleshooting, firmware installation, boot image testing, bootloader management and low-level device maintenance. The basic commands such as fastboot devices, fastboot getvar, fastboot reboot, fastboot flash and fastboot set_active cover many common tasks, while commands for dynamic partitions, GSI installations, snapshots and super partitions are intended for more advanced situations.
One important point for 2026 is that there is no single list of commands that works identically on every Android phone. The Fastboot client installed through Platform-Tools has its own supported command set, while the connected bootloader can add device-specific behavior. OEM commands are particularly different between manufacturers. Google’s current Fastboot source also includes newer functionality such as fetch, snapshot-update operations and dynamic-partition management.
For that reason, always start with:
fastboot devices
fastboot --help
fastboot getvar product
fastboot getvar current-slotThen follow the official flashing instructions for the exact phone model before using commands that modify or erase partitions.
Note: Product details, pricing, and availability may change over time. While we try to keep information accurate, please verify details from the official website before purchasing. Some content may be assisted by AI tools like ChatGPT, and some articles may contain affiliate links that may earn us a small commission at no extra cost to you. Reviews, opinions, and feature highlights are based on official specifications and publicly available information at the time of writing.
Explore our
News Section
for daily updates and the latest tech news.Join our
WhatsApp Channel
for instant updates.






