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 参考文献

1. Android Fastboot: http://www.omappedia.org/wiki/Android_Fastboot#Updating_system_image_on_NAND

2. fastboot_protocol.txt

fastboot 详解相关推荐

  1. Linux系统详解 系统的启动、登录、注销与开关机

    Linux系统详解 第六篇:系统的启动.登录.注销与开关机 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://johncai.blo ...

  2. 怎样进入android模式,安卓手机如何进入Recovery模式的通用方式详解

    2014-12-12 15:24:16 安卓手机如何进入Recovery模式的通用方式详解 标签:安卓 Recovery模式 教程 Recovery模式是什么?这里说的Recovery模式主要指的是安 ...

  3. init进程(即进程1,或者说linuxrc)的详解

    以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.init进程详解1 1.init进程完成了从内核态向用户态的转变 (1)一个进程先后两种状态 init进程刚开始运行的时候是内核态,它属 ...

  4. S5PV210 Uboot开发与移植03:Uboot启动流程详解

    目录 1. start.S解析 1.1 uboot入口分析 1.2 头文件包含 1.2.1 config.h 1.2.2 version.h 1.2.3 asm/proc/domain.h 1.2.4 ...

  5. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

  6. 必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法

    必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法 作者 梓沐啊_(KylinDemons) 版权声明 Copyright © 2021 KylinD ...

  7. Android 8.0学习(32)---Android 8.0源码目录结构详解

    Android 8.0源码目录结构详解 android的移植按如下流程:     (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来.     (2)正确挂载文件系统 ...

  8. 【ADB 操作命令详解及用法大全(非常全)】

    ADB操作命令详解及用法大全 一.ADB是什么?   ADB,即 Android Debug Bridge 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供 ...

  9. TL138-EVM U-Boot启动方法及启动参数详解

    1U-Boot-2016.05版本适用性说明 表 1 开发板型号 是否支持本实验 TL5728-EasyEVM 支持 TL5728-IDK 支持 TL5728F-EVM 不支持 2U-Boot启动参数 ...

最新文章

  1. HttpClient4.4 登录知乎(详细过程)
  2. ROS知识【12】:用户的功能包覆盖系统功能包
  3. chrome 不记录填写值_【转载】禁用自动填表'autocomplete=off'在Chrome 中不起作用...
  4. 【qxbt day1】 P2367 语文成绩
  5. 读光OCR-文字识别技术解读与应用案例分析
  6. [蓝桥杯]试题 基础练习 Sine之舞
  7. 4.C++深入理解 面向对象部分3
  8. css的font修改颜色,css的font字体颜色如何设置
  9. win7新建文件夹-快捷键
  10. 2015 ACM/ICPC Asia Regional Changchun Online HDU - 5441 (离线+并查集)
  11. java string 空间_java堆与栈 java String分配内存空间(详解)
  12. Word里面文字怎么加边框
  13. openresty 网关rsa+aes+redis鉴权解密
  14. CNI Proposal 摘要
  15. Appium桌面版连接Android手机定位页面元素
  16. pacman安装ubuntu_pacman命令 – 软件包管理器
  17. 远程主机强迫关闭了一个现有的连接
  18. 30岁以前该做什么,30岁以后该做什么!!很有道理
  19. 基于PaddleOCR开发uni-app离线身份证识别插件
  20. html5指南针源码,全套指南针软件源码

热门文章

  1. 写给想成为前端工程师的同学们
  2. plsql使用IP直接登录数据库
  3. easyProxy,轻量级、高性能http代理服务器,内网穿透从未如此简单。
  4. 圣诞节营销攻略之贺卡、逼单、开发的模板
  5. 婚后,当老公只要心情不好就想要离婚,该不该果断离呢?
  6. 【Pygame实战】经典的坦克大战游戏,勾起童年无限回忆《坦克大战小霸王版》
  7. $(@:_config=)什么意思?
  8. (转)工业智能相机与基于PC的机器视觉的区别比较
  9. 如何计算无人机机架对应螺旋桨大小和尺寸!
  10. html中label文本垂直居中,如何在VB中实现label中的文字垂直方向居中?