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.
Fastboot is three different things with the same name: A protocol for communication between your phone hardware and a computer, software that runs on the phone when in fastboot mode and the executable file on the computer you use to make them talk to each other.
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 software from 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 (after unlocking the bootloader) is a popular use case, as is resetting it all back using factory images after we're done breaking things by flashing the factory images. With an unlocked bootloader, 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.