分享

fastboot 介绍

 frank_D_ 2022-03-10

什么是fastboot?

是目标板和主机之间定义的一套协议,这套协议以USB作为底层传输物理层,协议规定了主机fastboot和目标板fastboot软件之间的信息传输规则。

Fastboot的协议fastboot_protocol.txt在源码目录./bootable/bootloader/legacy下可以找到。

fastboot模式,即bootloader模式,fastboot是uboot中的一个命令,uboot的fastboot命令将开发板伪装成一个usb从设备。

adb reboot bootloader,这个命令实现的是从电脑端控制手机或者设备进入bootloader模式,而fastboot正是工作在这个模式的,我们所谓的线刷实际上都是工作在bootloader模式。

一般fastboot线刷都会结合adb调试工具一起使用,先使用adb reboot bootloader进入bootloder模式,再使用fastboot工具进行刷机

2.命令

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,就必须要知道参数名称与文件的对应关系

nameoffsetsize
xloader0x000000000x00080000
bootloader0x000800000x00180000
environment0x001C00000x00040000
kernel0x002000000x01D00000
system0x020000000x0A000000
userdata0x0C0000000x02000000
cache0x0E0000000x02000000
nametype of fileusual file
xloaderxloader binaryMLO
bootloaderuboot binaryu-boot.bin
environmenttext filelist of variables to set
kernelkernel or kernel + ramdiskuImage, uMulti
systemyaffs2system.img
userdatayaffs2userdata.img
cacheyaffs2?

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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多