【android】Fastboot命令详解

文章出处:http://blog.csdn.net/geniusmen/article/details/7892398

1.Fastboot简介

Fastboot是Android快速升级的一种方法,Fastboot的协议fastboot_protocol.txt在源码目录./bootable/bootloader/legacy下可以找到。

Fastboot客户端是作为Android系统编译的一部分,编译后位于./out/host/linux-x86/bin/fastboot目录下。

Fastboot命令实例:sudo fastboot flash kernel path-to-kernel/uImage

烧写rootfs类似:sudo fastboot flash system path-to-system/system.img

2.命令

2.1 升级系统

sudo fastboot flash bootloader u-boot.bin
sudo fastboot flash kernel uImage
sudo fastboot flash system system.img
sudo fastboot flash userdata userdata.img
sudo fastboot flash ramdisk ramdisk-uboot.img
sudo fastboot erase cache

fastboot flash {partition} {*.img}   例:fastboot flash boot boot.img或fastboot flash system system.img等。

fastboot flashall   注意:此命令会在当前目录中查找所有img文件,将这些img文件烧写到所有对应的分区中,并重新启动手机。

一次烧写boot,system,recovery分区:

    (1)创建包含boot.img,system.img,recovery.img文件的zip包。

    (2)执行:fastboot update {*.zip}

烧写开机画面:

    fastboot flash splash1 开机画面

2.2 重启系统

sudo fastboot reboot

2.3 不烧写flash情况下调试

sudo fastboot boot uImage 或者u-boot.bin

2.4 查看版本号

sudo fastboot getver:version

2.5 复位到bootloader

sudo fastboot reboot-bootloader

2.6 命令格式

主机端发送字符串的命令,字符串小于等于64个字节,客户端首先返回四个字节的内容,是OKAY、FAIL、DATA、INFO之一,随后跟着是信息或数数据。

2.7 清空分区

fastboot erase {partition}   例:fastboot erase boot或fastboot erase system等。

fastboot erase boot

fastboot erase system

fastboot erase data

fastboot erase cache

上面的命令也可以简化成一条命令

fastboot erase system -w

2.8 获取客户端(手机端)变量信息

fastboot getvar version:version-bootloader:version-baseband:product:serialno:secure 

version 客户端支持的fastboot协议版本

version-bootloader  Bootloader的版本号

version-baseband    基带版本

product             产品名称

serialno             产品序列号

secure              返回yes 表示在刷机时需要获取签名

3.支持的参数

偏移和地址在u-boot中定义,要想使用好fastboot,就必须要知道参数名称与文件的对应关系。

 

name offset size
xloader 0x00000000 0x00080000
bootloader 0x00080000 0x00180000
environment 0x001C0000 0x00040000
kernel 0x00200000 0x01D00000
system 0x02000000 0x0A000000
userdata 0x0C000000 0x02000000
cache 0x0E000000 0x02000000

 

 

name type of file usual file
xloader xloader binary MLO
bootloader uboot binary u-boot.bin
environment text file list of variables to set
kernel kernel or kernel + ramdisk uImage, uMulti
system yaffs2 system.img
userdata yaffs2 userdata.img
cache yaffs2 ?

 

4.其他功能

4.1环境变量

fastboot支持环境变量文件,通常在fastboot烧写nand flash时,会将偏移量和大小写入环境变量中,命名格式为:

<partition name>_nand_offset
<partition name>_nand_size

例如,内核烧写完成后printenv可以看到:

kernel_nand_offset=0x140000
kernel_nand_size=0x1f70000

4.2查看USB设备

查看连接到OTG的USB设备情况,lsusb:

Bus 008 Device 030: ID 0451:cafe Texas Instruments, Inc. <----- fastboot

更多细节查看cat /proc/bus/usb/devices

4.3 静态模块地址

fastboot重用内核的nand地址分配方式,并且大部分是可以变化的,但是下面列出来的这些地址是不变的。

name                 offset                 size

xloader          0x00000000      0x00080000

bootloader     0x00080000      0x00180000

environment  0x001C0000      0x00040000

4.4 文件大小限制

最大下载文件大小为240M。

5 简单常用的fastboot命令:

1.重启G1:
$ fastboot reboot

2.刷所有分区:以下命令会在当前目录寻找各种所有的image文件,并且在刷完所有分区后重启手机
$ fastboot flashall

3.刷指定分区:
$ fastboot flash {partition} {file.img}

如:fastboot flash system /备份/system.img
4.擦除分区:

$ fastboot erase {partition}

如:fastboot erase system

5.刷完整的系统: (未测试!!). 创建一个包含boot.img, system.img和recovery.img的zip压缩包,并且运行:

$ fastboot update {update.zip}
3
6.刷自定义开机画面:(替代默认的白色"T-Mobile G1"画面):

$ fasboot flash splash1 mysplash.rgb565

注意开机画面文件需要一个特定格式,参考:Custom boot image.

*通常需要完全恢复的操作是:

$ fastboot flash boot boot.img
$ fastboot flash system system.img
$ fastboot flash userdata data.img

$ fastboot flash recovery recovery.img

以下是完整的fastboot命令的使用说明:

usage: fastboot [ <option> ] <command>;
commands:
update <filename>   reflash device from update.zip;
flashall    "flash boot" + "flash 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
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
HTC目前的系统结构都是几个储存分区独立存在而又关联的。 一个完整的官方rom解开如下所示(参考) boot.img system.img recovery.img hboot.nb0 data.img cache.img radio.img 等等。。。 我们所说的刷机也仅仅是boot.img引导分区加上system.img系统分区、 那么很多同学卡在第一屏,白屏。或者recovery无法进入(有时候涉及到系统文件不完整,一般都是未刷入第三方recovery) 都是因为boot系统内核(引导分区)加上system不匹配,造成不能正确引导所致。 既然知道了问题所在,接下来就有几种解决方案了 第一:手动刷入boot。或者recovery。 通过fastboot命令刷入。 首先必须要有fastboot支持,官方刷机包里面都自带。我这里提取给大家 解压运行里面的cmd.exe 我的是直接在系统里面提取的cmd。不一定都适用。如果不能运行那就 点击开始-运行-cmd 进入这个文件夹。运行fastboot命令 手机进入fastboot模式有2种方法。如果你的手机能用adb识别到,有时候卡在第一屏也可以识别 你可以先运行 adb devices 如下图显示说明此时adb命令是可以运行的,也可以做更多的事情。 那么我们通过adb命令进入fastboot吧。 运行命令adb reboot bootloader 这样手机就进入fastboot usb模式,如果电脑驱动没装好,这里会识别不到的 第二种进入方法是,手机完全断电,按住音量向下+电源键不放。进入hboot之后点击下电源键 接下来就是刷入boot和recovery了。 把recovery.img和boot.img提取放到刚才下载的文件夹里面。 回到cmd。运行命令。 单刷boot.img命令 : fastboot flash boot boot.img 单刷recovery.img命令 : fastboot flash recovery recovery.img 当然这里不排除有些机器因为民间解锁后刷官方ROM以及升级hboot的问题出错。 我刚才也是刷了4.0系统的官方rom造成错误,然后刷了一个hboot解决掉了 如果以上还达不到你的要求,那么,继续下一步吧。 第二节:刷入原生官方rom 大家经常遇到的就是手机无法进入系统,刷机各种报错,无法进recovery,那好。我刷htc官方rom总行吧。 但是,经过解锁的机器。有很多局限性。什么cid错误啊,什么版本错误啊。。眼花缭乱了吧。 下面我们一htc sensation和htc raider为例说明下刷机方法。 如果htc sensation和raider都是官方解锁的话。刷入完整的官方rom需要先上锁。 具体方法请参考这里: HTC Raider 4G/X710e/突袭者刷回官方ROM教程 http://bbs.dospy.com/viewthread.php?tid=14412965&bbsid=354&page=1&extra=page=1#pid210911214 那如何选择官方ROM呢。哪一个才是适合自己的手机呢? 这里我给大家提供下对应方法, 回到cmd界面,运行命令。 fastboot getvar all
运行 清除fastboot进磁盘操作.bat 接着电脑自动安装驱动(不会自动安装的驱动路径在MiFlash安装目录下) 这时就进入磁盘模式了,接着就可以用DiskGenius,分区助手专业版和MiFlash进行操作了(还可以用DiskGenius做数据备份) 用MiFlash刷机(目的是为了还原删除的aboot也可以用我提供的备份还原)刷完后关MiFlash,可别拔掉手机哦 呵呵 补充:没用miflash刷机的一定要要还原aboot分区要不后面改好了启动不来(一定要刷机要不你自己备份的也是清除的分区里面没数据是没用的) 3. 打开DiskGenius要操作的磁盘是QualcommMMCStorage(里面有27个分区的就是) 认为有必要的备份好整个分区表和分区(极力推荐备份)。 也可以用我提供的备份(有些分区是各手机私有的不能用我的备份分别是ssd dbi bk1 bk2 modemst1 modemst2 fsc bk3 fsg bk4 bk5 这11个分区同时也是不可动的)。 以下是两种分区方法 选其中一种即可 1。 用分区助手无损移动分区 2。 用DiskGenius删分区再重建 第一种: 方法删除 system1 boot1 modem1 userdata四个分区就可以了。(认为有必要的懂得可以删其他分区) 用分区助手移动分区把未分配空间集合在右边也就是userdata分区那一边保存修改(提交)然后用DiskGenius新建分区userdata把剩下的空间都给它 文件系统类型linux data partion 勾上对齐到下列扇区数的整数倍数值是8 详细里面的分区名userdata 再点上无盘符。 分区建好保存更改(分区名一定要是userdata)。 换到分区助手格式化userdata分区 格式ext3其他默认(可以开机后进fastboot用命令格式化此分区命令是fastboot format userdata)。
fastboot烧机命令是一种在Android设备上使用fastboot工具进行固件刷写的方法。它允许用户在恢复模式下通过电脑将固件或系统映像文件烧写到设备的存储器中。 使用fastboot烧机命令需要先将Android设备进入fastboot模式,通常通过同时按住设备的某些物理按键实现。一旦设备进入fastboot模式,就可以通过电脑上的命令行工具来执行fastboot烧机命令。 一些常用的fastboot烧机命令包括: 1. fastboot devices: 用于确认设备是否成功连接到电脑上,并获取设备序列号。 2. fastboot flash <partition> <filename>: 用于将指定的映像文件烧写到设备的指定分区中。例如,"fastboot flash system system.img"会将system.img文件烧写到设备的系统分区中。 3. fastboot erase <partition>: 用于擦除设备上的指定分区。例如,"fastboot erase cache"会擦除设备的缓存分区。 4. fastboot reboot: 用于重新启动设备。 5. fastboot oem <command>: 用于执行设备制造商特定的命令。 需要注意的是,使用fastboot烧机命令需要小心谨慎,因为错误的操作可能会导致设备损坏或数据丢失。在执行这些命令之前,建议先备份设备的关键数据。此外,确保使用正确的固件映像文件,并且遵循官方或可靠来源提供的具体操作步骤。 总结起来,fastboot烧机命令是一种在Android设备上使用fastboot工具刷写固件的方法,它提供了一系列命令来进行设备连接、分区烧写和设备控制等操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值