Android A to Z

What is fastboot? In Android, fastboot is a special diagnostic and engineering protocol that you can boot your Android device into.  While in fastboot, you can modify the file system images from a computer over a USB connection.  It's a powerful, nerdy tool that deserves to be broken down into terms we all can understand -- let's try and do that.

Not all phones have a fastboot mode that the user can access.  It's turned on with Nexus devices by default (as well as a few other phones and tablets) and has been enabled by independent Android developers and enthusiasts on some other phones.  It also requires more than what ships with the Android SDK, and different USB drivers for Windows computers.  Fastboot runs on Windows, Mac, and Linux and all the information about setting it up can be found in the forums if you're interested.  Once set up, you boot your phone to fastboot and you can flash image files to your phone's internal memory.  Flashing a custom recovery like ClockworkMod is a popular use case, as is resetting it all back using factory images after we're done breaking things.  The images you flash don't need to be signed with a particular key, so just about anything will try to flash -- even if it shouldn't be used, so use care.  There are other commands you can use with fastboot, and they're a bit more advanced.  Things like erasing partitions and overriding kernel command line options can be done, and this makes the tool very useful for developing hardware and software solutions that may need customized booting procedures.  With a little bit of knowledge, and the right Android hardware, fastboot can be a great tool.

Previously on Android A to Z: What's an ETF?; Find more in the Android Dictionary

More from the Android Dictionary


There are 9 comments

Murph5150 says:

Jerry, thank you. It's frustrating when I read articles with tech language I don't understand. These articles you folks post are a great learning reference tool for people like me.

I love the new bootloader on the Galaxy Nexus

verbuyst says:

I love the explainations of Android A to Z, gimme more

"fastboot is a [...] protocol that you can boot your Android device into" You cannot "boot into" a protocol, that's not what protocol means.
"Fastboot runs on Windows, Mac, and Linux" Wait, what now?

I know what fastboot is used for, but I'm not sure what it IS. And reading this article only confuses me.

PacoBell says:

Yeah, I don't like how they're playing fast and loose with the terms for the fastboot mode in the bootloader, the protocol, and the client tool. If this is truly for the "layman", then we're really doing them a disservice here when they actually go out to install custom ROMs

Jred says:

It's a little nit-picking, but I agree.

AFAICT, fastboot is either an extension of the bootloader, or low-level program that gets called from the bootloader (i assume extension because the interface is identical).

From here you can use an external client to interract with it from either windows, linux or mac to push images or change parameters of the bootloader (i.e. why you can change kernel command line options). Which makes me again think it's an extension of the bootloader.

Also, as far as HTC devices are concerned, you can somewhat interact with fastboot by putting a properly named zip file on the root of your sdcard to do automated flashes. Personally I can't stand this method because you have to completely reboot and remove that zip file if you ever want to get back into fastboot/recovery again.

Just my 2 cents.

Elim says:

The 'problem' is that the same term 'fastboot' is used for different things.
1. First it is correct that fastboot is a protocol.
2. But there exists also a host application on most Android devices with the same name, which provide this protocol via the USB port.
3. And there is a client application 'fastboot' which can be install (normally with Android-SDK) under Windows, Mac or Linux. This client communicate with the host via the 'fastboot' protocol.

kharrigan says:

As far as I can tell, FB is a bootloader that can interact with a computer. I've only interacted with it once, but it seems to the be key enabler to loading custom firmware.

As for the A-to-Z articles... genius. Pure genius.

A nice article. I wish it would flesh out a little bit more on what it is and more uses, but I did find the piece useful.