Refer to: http://wiki.cyanogenmod.com/wiki/Fastboot
Fastboot
Fastboot is a command line tool used to directlyflash the filesystem inAndroid devices from a host via USB. It allowsflashing of unsigned partition images. It is disabled in production devices since USB support has been disabled in the bootloader. You must have an EngineeringSPL, or an SPL that is S-OFF.
After installing the Android SDK orADB Standalone you can use 'fastboot' in addition to the more commonADB.
Contents[hide] |
Verify SPL S-OFF
With the exception of the Google Nexus One (which has an OEM unlock), when you boot the device into the bootloader, you should see S-OFF (security off) on the top line. If you see S-ON, or you see a four-color rainbow background, theSPL does not support fastboot. You will need to install afastboot compatable SPL, such as HardSPL or any of the Engineering SPLs for various devices. See the device specific page for further instructions.
Access bootloader
- Make sure you have ADB or theSDK installed.
- Linux & OS X only: Download fastboot for the appropriate operating system for your computer.
- Place the executable in the proper place, usually:
- Linux: ~/android_sdk/tools/ or ~/bin/
- OS X:
- Windows: C:\Android_SDK\Tools or C:\Program Files\adb
- Turn off the device.
- Boot device into bootloader
- Make sure the device is inFASTBOOT and notHBOOT
- Connect the device to the computer via USB.
- On your computer, open terminal and run:
-
fastboot devices
-
- You should see something similar to:
List of devices attached HTXXXXXXXXXX device
fastboot --help
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 partion 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 continue continue with autoboot reboot reboot device normally reboot-bootloader reboot device into bootloader 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
Typical Partition Layout
For Reference when flashing partitions
Name | Nandroid .img | Information Contained | Mount Point | Notes |
---|---|---|---|---|
splash1 | N/A | Boot image ("T-mobile G1" image) | mtdblock0? | size: 320x480x2. Different from bootanimation.zip. |
recovery | N/A | A 'backup' kernel, initrd, and OS for system recovery / maintenance | mtdblock1 | Can flash custom recovery.img (Amon_Ra, ClockworkMod, etc). Accessed by holding [home] while booting. |
boot | boot.img | The main kernel and initrd | mtdblock2 | Can flash custom boot.img |
system | system.img | The main OS | mtdblock3 | This is the /system partition |
cache | cache.img | Temp storage | mtdblock4 | Unused. Can be re-partitioned. |
userdata | data.img | User data and settings | mtdblock5 | This is the /data partition |
Examples
Manual Nandroid restore
Make a Nandroid backup, and copy the folder off your SD card to your desktop.
-
cd ~/Desktop/path/to/backup/
-
fastboot flash userdata data.img
-
fastboot flash system system.img
-
fastboot flash boot boot.img
-
fastboot reboot
Flash Custom Recovery.img
-
fastboot flash recovery /path/to/<recovery>.img
-
fastboot reboot
Flash Custom boot.img
You should make a Nandroid backup first, in case you need to recover your boot.img
-
fastboot flash boot /path/to/<boot>.img
-
fastboot reboot
Development
If you are developing a kernel, you may find it helpful to delete your boot.img and recovery.img to force booting intofastboot:
-
fastboot erase boot
-
fastboot erase recovery
You can then manually boot from your custom kernel and a ramdisk:
-
fastboot boot <kernel> <ramdisk>
Once you have a working kernel and ramdisk, you can automagically combine them withinfastboot:
-
fastboot flash:raw boot <kernel> <ramdisk>