Jump to content

Fastboot: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
I changed xiaomi from power + vol.down to power+vol.up
m Reverted edits by 180.252.198.27 (talk) to last version by GNUtoo
Tags: Rollback Mobile edit Mobile web edit Advanced mobile edit
 
(22 intermediate revisions by 14 users not shown)
Line 45: Line 45:
| AsOf =
| AsOf =
}}
}}
'''Fastboot''' is a [[Communication protocol|communications protocol]] used primarily with [[Android (operating system)|Android]] 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]] tool of the same name and as a mode of the [[bootloader]] of Android devices. It is included with the [[Android SDK]] package used primarily to modify the [[flash memory|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 to it via USB using a command line.<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> Fastboot allows to boot from a custom [[Android recovery mode|recovery]] image. Fastboot does not require [[Android Debug Bridge|USB debugging]] to be enabled on the device.<ref>{{Cite book|last=Tamma|first=Rohit|url=https://www.worldcat.org/oclc/910639389|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> Not all Android devices have fastboot enabled.<ref>{{Cite web|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|url-status=live|access-date=2021-08-04|website=[[Lifehacker]]|date=11 January 2017 |language=en-us}}</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/|url-status=live|access-date=2021-08-04|website=[[Makeuseof]]|language=en-US}}</ref>
'''Fastboot''' is a [[communication protocol]] used primarily with [[Android (operating system)|Android]] 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]] 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 memory|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,<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#System design|USB bulk transfers]]. Fastboot on some devices allows [[bootloader unlocking|unlocking the bootloader]], and subsequently, enables installing custom [[Android recovery mode|recovery]] image and [[custom ROM]] on the device. Fastboot does not require [[Android Debug Bridge|USB debugging]] to be enabled on the device.<ref>{{Cite book|last=Tamma|first=Rohit|url=https://www.worldcat.org/oclc/910639389|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]]|language=en-US}}</ref>


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.|url=https://www.worldcat.org/oclc/875820167|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>
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]] |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.|url=https://www.worldcat.org/oclc/875820167|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 ==
== Keys pressed ==
The keys that have to be pressed for fastboot differ for various vendors.<ref>{{Cite book|last=Tahiri|first=Soufiane|url=https://www.worldcat.org/oclc/952135850|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>
The keys that have to be pressed for fastboot differ for various vendors.<ref>{{Cite book|last=Tahiri|first=Soufiane|url=https://www.worldcat.org/oclc/952135850|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, and Xiaomi: Power and volume down

* HTC and Google Pixel: Power and volume down
* Zebra and symbol devices: Right scan/action button
* Sony and Xiaomi: Power and volume up
* Sony: Power and volume up
* Google Nexus: Power, volume up and volume down
* 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 (firmware flashing software)|ODIN]] mode. This is a proprietary protocol, and tool, as an alternative to fastboot. The tool has a partial [[Odin (firmware flashing software)#Alternatives|alternative]].
On Samsung devices, (excluding the Nexus S and Galaxy Nexus devices), power, volume down and home has to be pressed for entering [[Odin (firmware flashing software)|ODIN]] mode. This is a proprietary protocol, and tool, as an alternative to fastboot. The tool has a partial [[Odin (firmware flashing software)#Alternatives|alternative]].
Line 70: Line 70:


== Implementations ==
== Implementations ==
{{Primary sources|section|date=January 2024}}
The fastboot protocol has been implemented in 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}}</ref>{{Non-primary source needed|date=September 2021}} and in [[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|url-status=live|access-date=2021-09-11|website=[[GitHub]]|language=en}}</ref>{{Non-primary source needed|date=September 2021}}
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]] 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]], <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]]|language=en}}</ref> and [[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>

Fastboot is a mode of the Android bootloader called ABOOT.<ref>Hay, R. (2017). fastboot oem vuln: Android bootloader vulnerabilities in vendor customizations. In ''11th [[USENIX]] Workshop on Offensive Technologies (WOOT 17)''.</ref>


== See also ==
== See also ==


* [[Bootloader unlocking]]
* [[Bootloader unlocking]]
*[[Android recovery mode]]
* [[Android recovery mode]]
* [[Thor (protocol)]]
* [[USB#Device_Firmware_Upgrade_mechanism|DFU (Device Firmware Upgrade mechanism)]]


== References ==
== References ==

Latest revision as of 09:15, 15 November 2024

Original author(s)Google LLC
Repositoryandroid.googlesource.com
Included withAndroid SDK
Available inC++
TypeFirmware communication protocol and implementation thereof

Fastboot is a communication protocol used primarily with Android devices.[1] 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,[2] 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.[3] To use fastboot, a specific combination of keys must be held during boot.[4]

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

Keys pressed

[edit]

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

  • HTC, Google Pixel, 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

[edit]

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 *** – unlocks an OEM locked bootloader for flashing custom/unsigned ROMs. The *** is a device specific unlock key.
  • flashing lock/oem lock *** – 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

[edit]

The fastboot protocol has been implemented in the Android bootloader called ABOOT,[8] the Little Kernel fork of Qualcomm,[9] TianoCore EDK II, [10][11] and Das U-Boot.[12]

See also

[edit]

References

[edit]
  1. ^ "Fastboot Protocol Documentation". android.googlesource.com. Retrieved 2019-07-07.
  2. ^ Ravenscraft, Eric (2014-06-13). "The Most Useful Things You Can Do with ADB and Fastboot on Android". Lifehacker. Retrieved 2019-07-07.
  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. Donnie Tindall. Birmingham, UK. p. 113. ISBN 978-1-78217-444-8. OCLC 910639389.{{cite book}}: CS1 maint: location missing publisher (link)
  4. ^ "How to Use ADB and Fastboot on Android (And Why You Should)". Makeuseof. 2017-01-26. Retrieved 2021-08-04.
  5. ^ "The Easiest Way to Install Android's ADB and Fastboot Tools on Any OS". Lifehacker. 11 January 2017. Retrieved 2021-08-04.
  6. ^ Drake, Joshua J. (2014). Android hacker's handbook. Zach Lanier, Collin Mulliner, Pau Oliva, Stephen A. Ridley, Georg Wicherski. Indianapolis, IN: Wiley. ISBN 978-1-118-60861-6. OCLC 875820167.
  7. ^ Tahiri, Soufiane (2016). Mastering mobile forensics : develop the capacity to dig deeper into device data acquisition. Birmingham, UK. ISBN 978-1-78528-106-8. OCLC 952135850.{{cite book}}: CS1 maint: location missing publisher (link)
  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 -". source.codeaurora.org. Archived from the original on 2021-09-11. Retrieved 2021-09-11.
  10. ^ "Undocumented Fastboot Oem Commands". carlo.marag.no. 2020-09-18. Retrieved 2021-09-11.
  11. ^ "edk2/AndroidFastbootApp.c at master · tianocore/edk2". GitHub. Retrieved 2021-09-11.
  12. ^ u-boot/u-boot, u-boot, 2023-04-15, retrieved 2023-04-15
[edit]