Add 'fastboot' protocol support to Linux


 * Summary: Add 'fastboot' protocol support to Linux


 * Proposer: Tim Bird

Description
The 'fastboot' protocol is a set of commands that work over USB which are used by Android to allow a command line tool (confusingly also called 'fastboot') to talk to target-resident software to update the flash partitions or boot the kernel. Usually, the target-side software that handles the fastboot protocol is the vendor-supplied (target-specific) firmware. For example, on the ADP1, the bootloader can detect a special keypress and enter "fastboot" mode, which then allows a developer to update the software on the device or perform other 'fastboot' operations.

In cases where the kernel is already running, or in cases where the kernel is used as its own bootloader (ie the kexec case), it would be useful to have the kernel directly support the fastboot protocol. This would allow developers to use the fastboot host-side program in these configurations in the same manner that it is used with Android-certified devices. This would simplify the process of getting Android software onto a device, and make it more uniform to update the flash partitions (or wherever persistent storage is for the kernel and root filesystems).

Support for the fastboot protocol is required by Google for certified Android devices.

Related work

 * See http://elinux.org/Android_Fastboot

Scope
A rough guess is that this would take about 4 weeks to develop and test.