Fastboot

Recovery mode included in Android mobile operating system


title: "Fastboot" type: doc version: 1 created: 2026-02-28 author: "Wikipedia contributors" status: active scope: public tags: ["android-(operating-system)", "communications-protocols", "android-(operating-system)-development-software", "booting"] description: "Recovery mode included in Android mobile operating system" topic_path: "general/android-operating-system" source: "https://en.wikipedia.org/wiki/Fastboot" license: "CC BY-SA 4.0" wikipedia_page_id: 0 wikipedia_revision_id: 0

::summary Recovery mode included in Android mobile operating system ::

::data[format=table title="Infobox software"]

FieldValue
nameFastboot
logo
collapsible
screenshotFile:Fastboot.png
captionFastboot text-based user interface
authorGoogle LLC
released
ver layout
discontinued
latest release date
latest preview date
repoandroid.googlesource.com
engine
included withAndroid SDK
languageC++
language count
genreFirmware communication protocol and implementation thereof
license
website
::

| title = | name = Fastboot | logo = | logo caption = | logo alt = | logo size = | collapsible = | screenshot = File:Fastboot.png | screenshot size = | screenshot alt = | caption = Fastboot text-based user interface | other_names = | author = Google LLC | developer = | released = | ver layout = | discontinued = | latest release version = | latest release date = | latest preview version = | latest preview date = | repo = android.googlesource.com | qid = | programming language = | middleware = | engine = | operating system = | platform = | included with = Android SDK | replaces = | replaced_by = | service_name = | size = | standard = | language = C++ | language count = | language footnote = | genre = Firmware communication protocol and implementation thereof | license = | website = | AsOf = Fastboot is a communication protocol used primarily with Android devices. It is implemented in a command-line interface tool of the same name and as a mode of the bootloader of Android devices. The tool is included with the Android SDK package and used primarily to modify the flash filesystem via a USB connection from a host computer. It requires that the device be started in Fastboot mode. If the mode is enabled, it will accept a specific set of commands, sent through USB bulk transfers. Fastboot on some devices allows unlocking the bootloader, and subsequently, enables installing custom recovery image and custom ROM on the device. Fastboot does not require USB debugging to be enabled on the device. To use fastboot, a specific combination of keys must be held during boot.

Not all Android devices have fastboot enabled, and Android device manufacturers are allowed to choose if they want to implement fastboot or some other protocol.

Keys pressed

The keys that have to be pressed for fastboot differ for various vendors.

  • HTC, Google Pixel, Motorola, and Xiaomi: Power and volume down
  • Zebra and symbol devices: Right scan/action button
  • Sony: Power and volume up
  • Google Nexus: Power, volume up and volume down On Samsung devices, (excluding the Nexus S and Galaxy Nexus devices), power, volume down and home has to be pressed for entering ODIN mode. This is a proprietary protocol, and tool, as an alternative to fastboot. The tool has a partial alternative.

Commands

Some of the most commonly used fastboot commands include:

  • flash rewrites a partition with a binary image stored on the host computer.
  • flashing unlock/oem unlock DEVICE_SPECIFIC_UNLOCK_KEY unlocks an OEM locked bootloader for flashing custom/unsigned ROMs.
  • flashing lock/oem lock DEVICE_SPECIFIC_LOCK_KEY locks an OEM unlocked bootloader.
  • erase erases a specific partition.
  • reboot reboots the device into either the main operating system, the system recovery partition or back into its boot loader.
  • devices displays a list of all devices (with the serial number) connected to the host computer.
  • format formats a specific partition; the file system of the partition must be recognized by the device.
  • oem device-info checks the bootloader state.
  • getvar all displays all information about device (IMEI, bootloader version, battery state etc.).

Implementations

The fastboot protocol has been implemented in the Android bootloader called ABOOT, the Little Kernel fork of Qualcomm, TianoCore EDK II, and Das U-Boot.

References

References

  1. "Fastboot Protocol Documentation".
  2. Ravenscraft, Eric. (2014-06-13). "The Most Useful Things You Can Do with ADB and Fastboot on Android".
  3. Tamma, Rohit. (2015). "Learning Android forensics : a hands-on guide to Android forensics, from setting up the forensic workstation to analyzing key forensic artifacts".
  4. (2017-01-26). "How to Use ADB and Fastboot on Android (And Why You Should)".
  5. (11 January 2017). "The Easiest Way to Install Android's ADB and Fastboot Tools on Any OS".
  6. Drake, Joshua J.. (2014). "Android hacker's handbook". Wiley.
  7. Tahiri, Soufiane. (2016). "Mastering mobile forensics : develop the capacity to dig deeper into device data acquisition".
  8. Hay, R. (2017). fastboot oem vuln: Android bootloader vulnerabilities in vendor customizations. In ''11th [[USENIX]] Workshop on Offensive Technologies (WOOT 17)''.
  9. "fastboot.c\aboot\app - kernel/lk -".
  10. (2020-09-18). "Undocumented Fastboot Oem Commands".
  11. "edk2/AndroidFastbootApp.c at master · tianocore/edk2".
  12. (2023-04-15). "u-boot/u-boot". u-boot.

::callout[type=info title="Wikipedia Source"] This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page. ::

android-(operating-system)communications-protocolsandroid-(operating-system)-development-softwarebooting