什么是fastboot
fastboot是android使用的一种刷机方法。android系统设计了2种刷机方式:fastboot和recovery。
fastboot使用usb作为物理传输。刷机其实是镜像传输+烧录,fastboot刷机时就是通过usb线来传输镜像的
fastboot是uboot种的一个命令。uboot进行命令行中后,如果需要刷机,则可以在命令行中执行fastboot命令就可以让uboot进入fastboot模式,刷机就是在fastboot模式下进行的。
fastboot需要主机端的fastboot软件配合。要实现fastboot刷机,只有开发板端uboot是不行的,还需要在主机有fastboot.exe配合。
fastboot在开发板和主机间定义了一套协议。其实就是fastboot是我们在开发板和主机之间定义的一套协议,这套协议以usb为底层传输物理层,协议规定了主机fastbooot软件和开发板fastboot软件之间的信息传输规则。消息传递可以实现功能有:主机可以向开发板发送命令、开发板可以向主机发送回复、主机可以向开发板发送文件(download)
图1 fastboot运行演示
fastboot的工作原理
uboot的fastboot的命令将开发板伪装成一个usb设备。开发板本身并不是一个usb设备,所以开发板直接插到电脑是没有反应的,没有提示发现设备需要装驱动的。伪装之后开发板就被主机windows识别成一个安卓手机了。
主机的fastboot软件和开发板的fastboot程序通信来工作。平时工作时,开发板端只要执行了fastboot命令进入fastboot模式即可,剩下的就不用管了。主机端通过运行fastboot命令,传递不同的参数来实现主机端和开发板端的通信。 譬如主机端执行fastboot devices,则这个命令通过usb线被传递到开发板中被开发板的fastboot程序接收,接收后去处理向主机端发送发聩信息,主机端接收到反馈信息后显示出来。
学习fastboot时分析代码的思路是:主机端:fastboot.exe的源代码没有,fastboot协议虽然能找到但是很枯燥,所以主机端没有去分析。开
最新发布