Fastboot - elinux.org

Android Fastboot

Contents

[hide]

Introduction

Fastboot is the name of a tool used to manipulate the flash partitions of the Android developer phone.It can also boot the phone using a kernel image or root filesystem image which resideon the host machine rather than in the phone flash. In order to use it, it is important to understand theflash partition layout for the ADP1.

The fastboot program works in conjunction with firmware on the phone to read and write theflash partitions. It needs the same USB device setup between the host and the target phone as adb.

ADP1/G1 Flash partitions

Flash partitions on the ADP1

Partition nameDeviceSizeContents/Notes
splash1<none>307200 bytessplash screen image.
misc/dev/mtd/mtd0262kmisc - has apparently some flags used for controlling device mode
recovery/dev/mtd/mtd15.2Mkernel, initrd with rootfs (for alternate boot)
boot/dev/mtd/mtd22.6Mkernel, initrd with rootfs (for default boot)
system/dev/mtd/mtd370Myaffs2 file system, mounted read-only at /system - has the bulk of the Android system, including system libraries, Dalvik and pre-installed applications.
cache/dev/mtd/mtd470Myaffs2 file system, mounted at /cache - only used on G1 for over-the-air updates. This partition can be used to store temporary data.
userdata/dev/mtd/mtd578Myaffs2 file system, mounted at /data - contains user-installed applications and data, including customization data

To see details about the memory sizes of the flash partitions, in Linux (adb shell) do:'cat /proc/mtd'. This should show something like the following:

# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 00040000 00020000 "misc"
mtd1: 00500000 00020000 "recovery"
mtd2: 00280000 00020000 "boot"
mtd3: 04380000 00020000 "system"
mtd4: 04380000 00020000 "cache"
mtd5: 04ac0000 00020000 "userdata"
mtd6: 10000000 00020000 "msm_nand"

Note that these are reported during bootup. dmesg reports:from dmesg:

<5>[    5.301696] Creating 6 MTD partitions on "msm_nand":
<5>[    5.301727] 0x0000024c0000-0x000002500000 : "misc"
<5>[    5.302947] 0x0000026c0000-0x000002bc0000 : "recovery"
<5>[    5.303710] 0x000002bc0000-0x000002e40000 : "boot"
<5>[    5.304504] 0x000002e40000-0x0000071c0000 : "system"
<5>[    5.305328] 0x0000071c0000-0x00000b540000 : "cache"
<5>[    5.306091] 0x00000b540000-0x000010000000 : "userdata"

The last mtd partition recognized by Linux (mtd6) is called "msm_nand" and appears to represent the whole flash part, of 256M.Seehttp://www.telesphoreo.org/pipermail/g1-hackers/2008-December/000091.html

Special boot mode

Phone in fastboot mode

To use fastboot, you have to reboot the phone into the special 'fastboot' mode. Do this byturning off the phone, then booting the phone, holding down the camera button on the side ofthe phone, while pressing the power button.

You can tell you are in 'fastboot' mode when you see a screen with drawings of 3 Androids riding skateboards,on a white background.

The yellow line in the middle of the screen will say "Serial0" until you plug in the USB cable,and press the "back" key. Once you do this, after a few seconds the yellow line will switchto saying "FASTBOOT".

At this point you are ready to send commands and/or data to the phone using the fastboot programon your host.

Note: to get out of 'fastboot' mode on the phone, without using the fastboot program on the host, you can press the 'call/dial', 'menu' and 'hang-up/power' keys simultaneously.


Commands

The fastboot command line usage is:

$ fastboot -h
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
 
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

Erase an individual partition

To erase an individual partition, use:

  • fastboot erase <partition>
Ex: fastboot erase cache

Write to an individual partition

To write an image file to an individual partition, use:

  • fastboot flash <partition> [ <filename> ]

If writing to the 'splash1' partition, the file needs to be an image filein a special format. SeeG1 Splash Image for details.

If writing to the 'recovery' or 'boot' partitions, the file consists ofa Linux kernel and initrd file system image. This can be createdwith the 'mkbootimg' program.

If writing to the 'system', 'cache', or 'userdata' partitions, the fileis a file system image formatted in yaffs2 format.

FIXTHIS - document how to create one of these.

To boot with a host-side kernel image (and rootfs image)

This command allows you to download a kernel image (and optional root filesystem image) and bootthe phone with those, instead of using the kernel and rootfs in the boot flash partition.It is very useful while developing a kernel or modifying the rootfs.

  • fastboot boot <kernel> [ <ramdisk> ]
Ex: fastboot boot linux-2.6/arch/arm/boot/zImage root-image/recovery.img-ramdisk.cpio.gz

Reboot the phone

To reboot the phone, using the kernel and rootfs in the 'boot' partition:

  • fastboot reboot

Resources

Source code for the 'fastboot' command

Cheat sheet

There is a good cheat sheet at: http://andblogs.net/fastboot/

Downloadable binary

You can download a binary of 'fastboot' for the ADP1 platform from: http://www.htc.com/www/support/android/adp.html(see the table about the 1/4 down the page)

Specific Tasks

Replacing the splash screen

To replace the splash screen on the ADP1, you can use fastboot to write a new splash image into the splash1 partition. The image must be in a special format which can be directly used by the screen hardware.

See http://www.gotontheinter.net/logo.rle for details.


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值