Fastboot

From Android Wiki

Jump to: navigation, searcha

Contents

Fastboot

Fastboot is protocol used to update the flash filesystem in Android devices from a host over USB. It allows flashing of unsigned partition images. It is disabled in the production G1 devices since USB support is disabled in the bootloader[1]. This can be changed if you get root on the device. See also [2]

Source(s): Android solutions

Fastboot prerequisites

To be able to use fastboot, you need to be running either an ADP1 or the Engineering Bootloader on your G1.

If you are developing on a linux host, you may need to tweak UDEV to recognize the phone in fastboot mode. You may already have done this to get the phone recognized in Eclipse, but you need to do it again for fastboot, since fastboot uses a different device ID: 0bb4:0c01. The warning sign is that fastboot says "< waiting for device >" forever, even when you have the "FASTBOOT" message on the phone; if this happens, try adding the device ID 0bb4:0c01 to your UDEV configuration for Android.

For Opensuse 11.1 or Fedora 16, the following config file, saved to '/etc/udev/rules.d/11-android.rules' works:

SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c01", MODE="0666", OWNER="mylogname"
SUBSYSTEMS=="usb", ATTRS{idVendor}=="0bb4", ATTRS{idProduct}=="0c02", MODE="0666", OWNER="mylogname"

NOTE: change "mylogname" to your Linux login ID. Also note that the product ID bit is optional (probably easier to leave it out), and you need to change "0bb4" to the vendor ID for your phone if it isn't made by HTC (whose vendor ID is 0bb4). You can find the vendor id using 'lsusb'. An alternative to this is just to run fastboot as root, using sudo.

Source(s): Android solutions

Starting Fastboot

On the G1: To start fastboot, first get to the bootloader: turn off your phone and hold down the "camera" button while powering it back on. You will see a white screen with skateboarding bugdroids. If you just see the normal multicolored bootloader screen, you need to get the device side of fastboot working as noted above. Plug your phone into the usb and if you see "serial0" hit the "back" key. You should now see "fastboot" on the screen.

On the Samsung Galaxy: power down the phone, then long-press the two Call buttons. Beware that fastboot mode will continue to reboot the phone after ~30 seconds of inactivity.

Fastboot Binary

To make use of fastboot, you also need the fastboot program compiled for your host computer. If you have already built Android, you will have this file already. Its location should be:

<android source location>/out/host/{os}_{arch}/bin/fastboot

If you do not have fastboot built, you can either compile the Android source or try DarkriftX's precompiled fastboot (compiled on kubuntu x86)

Fastboot Commands

Here are the commands you can run on your host after fastboot has been started on a device connected via USB. This is a paste directly from the fastboot binary's "--help" command:

usage: fastboot [ <option> ] <command>

commands:
  update <filename>                        reflash device from update.zip
  flashall                                 flash boot + recovery + system
  flash <partition> [ <filename> ]         write a file to a flash partition
  erase <partition>                        erase a flash partition
  getvar <variable>                        display a bootloader variable
  boot <kernel> [ <ramdisk> ]              download and boot kernel
  flash:raw boot <kernel> [ <ramdisk> ]    create bootimage and flash it
  devices                                  list all connected devices
  reboot                                   reboot device normally
  reboot-bootloader                        reboot device into bootloader
  setserial <serial>                       set the device serial number
  setrev <rev>                             set the device hardware revision
options:
  -w                                       erase userdata and cache
  -s <serial number>                       specify device serial number
  -p <product>                             specify product name
  -c <cmdline>                             override kernel commandline
  -i <vendor id>                           specify a custom USB vendor id
  -b <base_addr>                           specify a custom kernel base address
  -n <page size>                           specify the nand page size. default: 2048

Forcing fastboot to load on every boot

Developers who are creating new images to try out very often can remove their boot and recovery images which will force the phone to enter bootloader mode every time you boot. To fix this, you would reflash the boot and recovery images back allowing the phone to boot normally.

$ fastboot erase boot
$ fastboot erase recovery

More Info

All or most of this information was obtained from Disconnect's site.

Source(s): Android solutions

Personal tools