打开/关闭搜索
搜索
打开/关闭菜单
通知
打开/关闭个人菜单
查看“Fastboot协议”的源代码
来自Uotan Wiki · 刷机百科
查看
阅读
查看源代码
查看历史
associated-pages
页面
讨论
更多操作
←
Fastboot协议
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
大部分安卓手机的引导程序实现了一个名为Fastboot的协议,可以通过USB向设备刷写/启动操作系统,或者读取一些信息。常见的BL锁指的就是fastboot和avb(Android Verified Boot安卓验证启动)是否强制验证签名。 ==== 设备识别ID ==== USB Class: 0xFF, SubClass: 0x42, Protocol: 0x03 DeviceInterfaceGUIDs: {F72FE0D4-CBCB-407D-8814-9ED673D0DD6B} Windows: USB\MS_COMP_WINUSB Windows: USB\Class_ff&SubClass_42&Prot_03 ==== 关于驱动 ==== Fastboot不需要驱动。 在Linux下,fastboot工具直接读写/dev/bus/usb/XXX/XXX设备进行通信 在Windows下,fastboot工具通过WinUSB(对于裸USB设备的包装,Windows不允许直接读写USB设备,此驱动系统内置)和设备进行通信 WINUSB: C:\Windows\INF\winusb.INF C:\Windows\System32\drivers\winusb.sys ==== 主机端命令请求格式: ==== * getvar:%s 该命令用于从设备读取一个变量 getvar:current-slot %s:任意字符串(变量名称) * download:%08x 该命令表示即将向设备的缓冲区发送指定大小的数据用于刷写/启动等等 %08x: 8字长的十六进制数(数据大小) 小写x表示数字以小写十六进制表示,8表示不满8字长则填充,0表示使用0填充 示例:download:0000A000 * flash:%s 将缓冲区中的数据刷入指定分区 %s:任意字符串(分区名称) * reboot 重启设备 ==== 设备端响应格式 ==== * OKAY / OKAY%s 表示命令已成功执行,并附带信息 %s:任意字符串(状态信息) 示例:OKAY 示例:OKAYyes 示例:OKAYcommand done * INFO%s 命令执行中上报状态信息 %s:任意字符串(状态信息) 示例:INFOflashing * FAIL / FAIL%s 表示命令执行失败,并附带信息 %s:任意字符串(状态信息) 示例:FAIL 示例:FAILunknown command 示例:FAILwrite failed * DATA%08x 表示设备已准备好接收主机端发来的数据(通常由download:%08x发起) %08x: 8字长的十六进制数(数据大小) 小写x表示数字以小写十六进制表示,8表示不满8字长则填充,0表示使用0填充 示例:DATA0000A000 ==== 示例命令分析 ==== * fastboot getvar kernel 主机:getvar:kernel 设备:OKAYuefi * fastboot flash boot boot.img 主机:download:00100000 设备:DATA00100000 主机:(发送boot.img的内容) 设备:OKAY 主机:flash:boot 设备:INFOflashing... 设备:OKAY ==== 其它注意事项 ==== * 向设备发送数据(download)时,数据不能大于max-download-size变量(缓冲区大小)的值。 当需要刷写的数据超过缓冲区大小时,则使用sparse对文件分段处理。 ''(待补充...)'' ==== Fastboot实现 ==== Qualcomm ABL: https://git.codelinaro.org/clo/la/abl/tianocore/edk2/-/tree/uefi.lnx.4.0.r37-rel/QcomModulePkg/Library/FastbootLib lk2nd: https://github.com/msm8916-mainline/lk2nd/blob/master/app/aboot/fastboot.c U-Boot: https://github.com/u-boot/u-boot/tree/master/drivers/fastboot Userspace Fastbootd: https://android.googlesource.com/platform/system/core/+/refs/heads/main/fastboot/device/ linux-simple-mass-storage: https://github.com/BigfootACA/linux-simple-mass-storage/tree/master/src/fastboot ==== 其它参考文档 ==== https://android.googlesource.com/platform/system/core/+/master/fastboot/README.md
返回
Fastboot协议
。