# Fastboot

> Mediated Wiki article. Canonical URL: https://mediated.wiki/source/Fastboot
> Markdown URL: https://mediated.wiki/source/Fastboot.md
> Source: https://en.wikipedia.org/wiki/Fastboot
> Source revision: 1326889943
> License: Creative Commons Attribution-ShareAlike 4.0 International (https://creativecommons.org/licenses/by-sa/4.0/)

{{Short description|Recovery mode included in Android mobile operating system}}
{{For|one of the PC ACPI ability|Instant-on}}
{{For|the PC fast booting ability|Fast startup}}
{{Distinguish|text=the [Android recovery mode](/source/Android_recovery_mode) or the Samsung specific Fastboot alternative called [Odin mode](/source/Odin_mode)}}
{{Infobox software
| title =
| name = Fastboot
| logo = <!-- File name without 'File:' -->
| logo caption = 
| logo alt = 
| logo size =
| collapsible = <!-- Any text here will collapse the screenshot. -->
| screenshot = File:Fastboot.png
| screenshot size =
| screenshot alt = 
| caption = Fastboot [text-based user interface](/source/text-based_user_interface)
| other_names =
| author = [Google LLC](/source/Google_LLC)
| developer = 
| released = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| ver layout = <!-- simple (default) or stacked -->
| discontinued = <!-- Set to yes, if software is discontinued, otherwise omit. -->
| latest release version = 
| latest release date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| latest preview version = 
| latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} -->
| repo = [https://android.googlesource.com/platform/system/core/+/refs/heads/master/fastboot/ android.googlesource.com]
| qid = 
| programming language = 
| middleware =
| engine = <!-- or |engines= -->
| operating system = 
| platform = 
| included with = [Android SDK](/source/Android_SDK)
| replaces =
| replaced_by =
| service_name = 
| size = 
| standard = 
| language = [C++](/source/C%2B%2B)
| language count = <!-- Number only -->
| language footnote = 
| genre = Firmware communication protocol and implementation thereof
| license = <!-- or |licence= -->
| website = <!-- {{URL|example.org}} or {{official URL}} -->
| AsOf = 
}}
'''Fastboot''' is a [communication protocol](/source/communication_protocol) used primarily with [Android](/source/Android_(operating_system)) devices.<ref>{{Cite web |url=https://android.googlesource.com/platform/system/core/+/refs/heads/master/fastboot/README.md |title=Fastboot Protocol Documentation |website=android.googlesource.com |access-date=2019-07-07}}</ref> It is implemented in a [command-line interface](/source/command-line_interface) tool of the same name and as a mode of the [bootloader](/source/bootloader) of Android devices. The tool is included with the [Android SDK](/source/Android_SDK) package and used primarily to modify the [flash](/source/flash_memory) [filesystem](/source/filesystem) via a [USB](/source/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,<ref>{{Cite web |url=https://lifehacker.com/the-most-useful-things-you-can-do-with-adb-and-fastboot-1590337225 |title=The Most Useful Things You Can Do with ADB and Fastboot on Android |last=Ravenscraft |first=Eric |date=2014-06-13 |website=Lifehacker |language=en |access-date=2019-07-07}}</ref> sent through [USB bulk transfers](/source/USB). Fastboot on some devices allows [unlocking the bootloader](/source/bootloader_unlocking), and subsequently, enables installing custom [recovery](/source/Android_recovery_mode) image and [custom ROM](/source/custom_ROM) on the device. Fastboot does not require [USB debugging](/source/Android_Debug_Bridge) to be enabled on the device.<ref>{{Cite book|last=Tamma|first=Rohit|title=Learning Android forensics : a hands-on guide to Android forensics, from setting up the forensic workstation to analyzing key forensic artifacts|date=2015|others=Donnie Tindall|isbn=978-1-78217-444-8|location=Birmingham, UK|pages=113|oclc=910639389}}</ref> To use fastboot, a specific combination of keys must be held during boot.<ref>{{Cite web|date=2017-01-26|title=How to Use ADB and Fastboot on Android (And Why You Should)|url=https://www.makeuseof.com/tag/use-adb-fastboot-android/|access-date=2021-08-04|website=[Makeuseof](/source/Makeuseof)|language=en-US}}</ref>

Not all Android devices have fastboot enabled,<ref>{{Cite web |date=11 January 2017 |title=The Easiest Way to Install Android's ADB and Fastboot Tools on Any OS |url=https://lifehacker.com/the-easiest-way-to-install-androids-adb-and-fastboot-to-1586992378 |access-date=2021-08-04 |website=[Lifehacker](/source/Lifehacker) |language=en-us}}</ref> and Android device manufacturers are allowed to choose if they want to implement fastboot or some other protocol.<ref name=":0">{{Cite book|last=Drake|first=Joshua J.|title=Android hacker's handbook|date=2014|publisher=Wiley|others=Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski|isbn=978-1-118-60861-6|location=Indianapolis, IN|oclc=875820167}}</ref>

== Keys pressed ==
The keys that have to be pressed for fastboot differ for various vendors.<ref>{{Cite book|last=Tahiri|first=Soufiane|title=Mastering mobile forensics : develop the capacity to dig deeper into device data acquisition|date=2016|isbn=978-1-78528-106-8|location=Birmingham, UK|oclc=952135850}}</ref>
* 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](/source/Odin_(firmware_flashing_software)) mode. This is a proprietary protocol, and tool, as an alternative to fastboot. The tool has a partial [alternative](/source/Odin_(firmware_flashing_software)).

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

== Implementations ==
{{Primary sources|section|date=January 2024}}
The fastboot protocol has been implemented in the Android bootloader called ABOOT,<ref>Hay, R. (2017). fastboot oem vuln: Android bootloader vulnerabilities in vendor customizations. In ''11th [USENIX](/source/USENIX) Workshop on Offensive Technologies (WOOT 17)''.</ref> the Little Kernel fork of Qualcomm,<ref>{{Cite web|title=fastboot.c\aboot\app - kernel/lk -|url=https://source.codeaurora.org/quic/la/kernel/lk/tree/app/aboot/fastboot.c|access-date=2021-09-11|website=source.codeaurora.org|archive-date=2021-09-11|archive-url=https://web.archive.org/web/20210911130919/https://source.codeaurora.org/quic/la/kernel/lk/tree/app/aboot/fastboot.c|url-status=dead}}</ref> [TianoCore EDK II](/source/TianoCore_EDK_II),<ref>{{Cite web|date=2020-09-18|title=Undocumented Fastboot Oem Commands|url=https://carlo.marag.no/posts/undocumented-fastboot-oem/|access-date=2021-09-11|website=carlo.marag.no|language=en-us}}</ref><ref>{{Cite web|title=edk2/AndroidFastbootApp.c at master · tianocore/edk2|url=https://github.com/tianocore/edk2|access-date=2021-09-11|website=[GitHub](/source/GitHub)|language=en}}</ref> and [Das U-Boot](/source/Das_U-Boot).<ref>{{Citation |title=u-boot/u-boot |date=2023-04-15 |url=https://github.com/u-boot/u-boot/blob/c34009d5a9a570355bd9efa0853e408ef8c210f3/net/fastboot.c |access-date=2023-04-15 |publisher=u-boot}}</ref>

== See also ==

* [Bootloader unlocking](/source/Bootloader_unlocking)
* [Android recovery mode](/source/Android_recovery_mode)
* [Thor (protocol)](/source/Thor_(protocol))
* [DFU (Device Firmware Upgrade mechanism)](/source/USB)

== References ==
{{Reflist}}

== External links ==
* [https://source.android.com/setup/build/running  Flashing Devices - Android.com]
*[https://android.googlesource.com/platform/system/core/+/refs/heads/master/fastboot/README.md Fastboot protocol specification]
* [http://newandroidbook.com/Articles/aboot.html Reverse Engineering Android's Aboot]

{{Android}}
{{Firmware and booting}}

Category:Android (operating system)
Category:Communications protocols
Category:Android (operating system) development software
Category:Booting

---
Adapted from the Wikipedia article [Fastboot](https://en.wikipedia.org/wiki/Fastboot) by Wikipedia contributors ([contributor history](https://en.wikipedia.org/wiki/Fastboot?action=history)). Available under [Creative Commons Attribution-ShareAlike 4.0 International](https://creativecommons.org/licenses/by-sa/4.0/). Changes may have been made.
