参考:

  http://blog.csdn.net/geniusmen/article/details/7892398

  http://www.cnblogs.com/eastnapoleon/p/3270857.html

  http://www.omappedia.org/wiki/Android_Fastboot#Updating_system_image_on_NAND

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

Android手机分区

  每个分区都可以被烧写,并有相应的img文件对应:

  • 开机启动画面区(splash1)
  • 数据恢复区(recovery)
  • 内核区(boot)
  • 系统区(system)
  • 数据缓存区(cache)
  • 用户数据区(userdata)

fastboot命令

1. 查看fastboot命令的帮助:

输入fastboot,显示如下信息:

usage: fastboot [ <option> ] <command>commands:update <filename>                        reflash device from update.zipflashall                                 flash boot + recovery + systemflash <partition> [ <filename> ]         write a file to a flash partitionerase <partition>                        erase a flash partitiongetvar <variable>                        display a bootloader variableboot <kernel> [ <ramdisk> ]              download and boot kernelflash:raw boot <kernel> [ <ramdisk> ]    create bootimage and flash itdevices                                  list all connected devicesreboot                                   reboot device normallyreboot-bootloader                        reboot device into bootloaderoptions:-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

2. 擦除分区:fastboot erase <partition>

$ sudo fastboot erase boot xx/boot.img
$ sudo fastboot erase system xx/system.img
$ sudo fastboot erase userdata xx/userdata.img
$ sudo fastboot erase cache xx/cache.img

3. 烧写指定分区:fastboot flash <partition> [*.img] 

$ sudo fastboot flash boot path-to-kernel/boot.img
$ sudo fastboot flash zimage path-to-kernel/arch/arm/boot/zImage
$ sudo fastboot flash system path-to-system/system.img
$ sudo fastboot flash splash1 开机画面

4. 烧写所有分区:fastboot flashall  

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

$ sudo fastboot flashall 

5. 一次烧写boot,system,recovery分区:fastboot update <*.zip>

创建包含boot.img,system.img,recovery.img文件的update.zip。

$ sudo fastboot update update.zip

6. 重启手机:

$ sudo fastboot reboot

7. 以指定的img或bin 启动系统,通常用于调试

  In addition to flashing the eMMC, Fastboot can also be used to boot from files already flashed to the eMMC. To do, so start Fastboot on the target, and then run a command on the host PC, for example to boot the u-boot:

# sudo fastboot boot u-boot.bin

8. 更新eMMC分区

  Regions in eMMC are given names. Their offsets and sizes are set in u-boot in the mmc.c file of the board directory that you are using. For example, for the Blaze, this file is u-boot/board/omap4430sdp/mmc.c:

static struct partition partitions[] = {{  },{  },{  },/* "misc" partition is required for recovery */{  },{  },{  },{ * },{ * },{ * },{ * },{ },{ ,  },
};

修改上面的内容,然后执行:

$ sudo fastboot oem format

9. 退出fastboot

  • 拔usb
  • ctrl+c
  • 超时退出命令 
    # fastboot 100
    或
    # fastboot 

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

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

getvar后和参数用:分开,它们的含义如下:

version  客户端支持的fastboot协议版本
version-bootloader Bootloader的版本号
version-baseband  基带版本
product          产品名称
serialno 产品序列号
secure 返回yes 表示在刷机时需要获取签名

11. 如何查看fastboot是否成功?

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

<partition name>_nand_offset
<partition name>_nand_size

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

kernel_nand_offset=0x140000
kernel_nand_size=0x1f70000

12. u-boot中定义定义的偏移和地址

name offset size type of file usual file
xloader 0x00000000 0x00080000 xloader binary MLO
bootloader 0x00080000 0x00180000 uboot binary u-boot.bin
environment 0x001C0000 0x00040000 text file list of variables to set
kernel 0x00200000 0x01D00000 kernel or kernel + ramdisk uImage, uMulti
system 0x02000000 0x0A000000 yaffs2 system.img
userdata 0x0C000000 0x02000000 yaffs2 userdata.img
cache 0x0E000000 0x02000000 yaffs2 ?

fastboot重用内核的nand地址分配方式,并且大部分是可以变化的,但是xloader、bootloader 、environment地址是不变的。

13. 文件大小限制

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

FASTBOOT教程相关推荐

  1. fastboot 教程

    1.参考 http://blog.csdn.net/geniusmen/article/details/7892398 http://www.cnblogs.com/eastnapoleon/p/32 ...

  2. 高通fastboot一键进9008工具_红米K30S至尊纪念版一键解锁bl获取面具root超详细刷机教程...

    RedmiK30系列新增K30S至尊版,也就是我们常说的超大杯,强悍的配置以及劲爆的价格今年的双11销量理论上会表现不错.高通骁龙865芯片再度被刷新到了2000元附近.可能双11还会有各种各样的活动 ...

  3. Fastboot的使用简单教程

    大家都知道HTC手机重新启动进入所谓的project模式,就是HBOOT,然后能够进入FASTBOOT界面,在这个界面.我们能够在电脑端能够做非常多事,特别是HBOOT被改动过,假设是ENG S-OF ...

  4. lgv50怎么进入fastboot模式_LG V30/V30+解锁BL+刷入TWRP_Recovery中文版-获取ROOT权限卡刷教程...

    由于LG V30/V30+机型有点特殊,刷机比较麻烦,请认真教程刷机才可以,对于新手 来说,请必须认真看教程,不然可能刷入失败,本教程支持V30机型,从解锁BL+刷 入第三方recovery+ROOT ...

  5. 联想zuk z2刷recovery教程(Fastboot一键线刷)

    联想zuk z2刷recovery教程,联想ZUK旗下zuk z2发布已经有一段时间了,小编发现很多用户都需要第三方的recovery来满足其他的需要,对于还不知道zuk z2怎么刷recovery的 ...

  6. data fastboot 擦除_Fastboot的使用简单教程

    标签:大家都知道HTC手机重启进入所谓的工程模式,就是HBOOT,然后可以进入FASTBOOT界面,在这个界面,我们可以在电脑端可以做很多事,特别是HBOOT被修改过,如果是ENG S-OFF的可以做 ...

  7. 《自拍教程57》Python fastboot一键刷机

    大部分的Android手机/车机/电视等移动终端设备, 都可以通过fastboot来刷新Android系统版本,其实就是多个img文件(镜像文件)的刷写. 准备阶段 先通过组合按键(每个Android ...

  8. Android Fastboot 模式下刷机教程

    1.进入fastboot模式,一般是电源加音量上下键然后10s左右. 2.fastboot devices 看看有没有权限访问 https://blog.csdn.net/mayimchen/arti ...

  9. Android6.0boot解锁,Lenovo手机fastboot命令 解锁Bootloade 教程

    1. 确保您的电脑已安装Android SDK,并可以使用adb和fastboot与手机建立连接并操作手机 2. 请将邮件中的附件unlock_bootloader.img保存到您的电脑 3. 保持手 ...

  10. 红米 12C earth 秒解锁 跳过168小时 红米note12 note12pro note12pro+系列机型解锁bl root教程步骤Fastboot

    最近上手体验了Redmi 12C/红米12C,这是红米新推出的百元机,起售价699元,4+64G版本,具有不错的性能,具有5000mAh大电池,具有双频wifi,支持双卡双待,支持SD卡扩展等. 如果 ...

最新文章

  1. php查找多个字符串替换,php 替换多个字符串
  2. day06_方法_20150806
  3. eclipse关闭讨厌的菜单
  4. [UWP]了解模板化控件(4):TemplatePart
  5. 两种DIV水平居中的方法
  6. tl wdr5660虚拟服务器,TP-Link TL-WDR5660路由器怎么设置?
  7. 依赖注入参考文章(1)
  8. 【个人笔记】OpenCV4 C++ 快速入门 19课
  9. 在写事件函数的时候function(e)当中的e是什么意思
  10. SQL之总结(四)---null问题的处理
  11. 优雅地修改多模块maven项目中的版本号
  12. 电子计算机与电子计算器,电子计算机与计算器的区别
  13. java webservice原理_WebService的工作原理
  14. 2021年T电梯修理免费试题及T电梯修理考试试卷
  15. 电子学会机器人等级考试三四级考试大纲
  16. 大数据是普惠金融的未来!
  17. iOS16新特性及开发适配
  18. 教你操作视频横屏改竖屏的方法
  19. LeCo-221. 最大正方形
  20. TimX_Ch1与TimX_Ch1N的差异

热门文章

  1. Git diffmerge 工具的配置及问题解决
  2. 期权定价 - BS模型 - 维纳过程和伊藤引理
  3. JAVA流-File文件
  4. 熵、互信息与相对熵的关系
  5. 路由器mac地址克隆
  6. 两个服务器同步网站数据,两个服务器之间数据库同步
  7. 机器学习算法入门介绍
  8. android addr2line使用
  9. 兄弟打印机 android,兄弟打印机app安卓版
  10. 删除android电视软件下载,【教程】无需root!卸载小米电视/盒子内置应用竟如此简单...