fastboot 详解
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 详解相关推荐
- Linux系统详解 系统的启动、登录、注销与开关机
Linux系统详解 第六篇:系统的启动.登录.注销与开关机 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://johncai.blo ...
- 怎样进入android模式,安卓手机如何进入Recovery模式的通用方式详解
2014-12-12 15:24:16 安卓手机如何进入Recovery模式的通用方式详解 标签:安卓 Recovery模式 教程 Recovery模式是什么?这里说的Recovery模式主要指的是安 ...
- init进程(即进程1,或者说linuxrc)的详解
以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.init进程详解1 1.init进程完成了从内核态向用户态的转变 (1)一个进程先后两种状态 init进程刚开始运行的时候是内核态,它属 ...
- 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 ...
- Android4.0源码目录结构详解
Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...
- 必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法
必过SafetyNet!以MIUI开发版系统为例详解Android设备通过SafetyNet校验方法 作者 梓沐啊_(KylinDemons) 版权声明 Copyright © 2021 KylinD ...
- Android 8.0学习(32)---Android 8.0源码目录结构详解
Android 8.0源码目录结构详解 android的移植按如下流程: (1)android linux 内核的普通驱动移植,让内核可以在目标平台上运行起来. (2)正确挂载文件系统 ...
- 【ADB 操作命令详解及用法大全(非常全)】
ADB操作命令详解及用法大全 一.ADB是什么? ADB,即 Android Debug Bridge 是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具,它可为各种设备操作提供 ...
- TL138-EVM U-Boot启动方法及启动参数详解
1U-Boot-2016.05版本适用性说明 表 1 开发板型号 是否支持本实验 TL5728-EasyEVM 支持 TL5728-IDK 支持 TL5728F-EVM 不支持 2U-Boot启动参数 ...
最新文章
- HttpClient4.4 登录知乎(详细过程)
- ROS知识【12】:用户的功能包覆盖系统功能包
- chrome 不记录填写值_【转载】禁用自动填表'autocomplete=off'在Chrome 中不起作用...
- 【qxbt day1】 P2367 语文成绩
- 读光OCR-文字识别技术解读与应用案例分析
- [蓝桥杯]试题 基础练习 Sine之舞
- 4.C++深入理解 面向对象部分3
- css的font修改颜色,css的font字体颜色如何设置
- win7新建文件夹-快捷键
- 2015 ACM/ICPC Asia Regional Changchun Online HDU - 5441 (离线+并查集)
- java string 空间_java堆与栈 java String分配内存空间(详解)
- Word里面文字怎么加边框
- openresty 网关rsa+aes+redis鉴权解密
- CNI Proposal 摘要
- Appium桌面版连接Android手机定位页面元素
- pacman安装ubuntu_pacman命令 – 软件包管理器
- 远程主机强迫关闭了一个现有的连接
- 30岁以前该做什么,30岁以后该做什么!!很有道理
- 基于PaddleOCR开发uni-app离线身份证识别插件
- html5指南针源码,全套指南针软件源码
热门文章
- 写给想成为前端工程师的同学们
- plsql使用IP直接登录数据库
- easyProxy,轻量级、高性能http代理服务器,内网穿透从未如此简单。
- 圣诞节营销攻略之贺卡、逼单、开发的模板
- 婚后,当老公只要心情不好就想要离婚,该不该果断离呢?
- 【Pygame实战】经典的坦克大战游戏,勾起童年无限回忆《坦克大战小霸王版》
- $(@:_config=)什么意思?
- (转)工业智能相机与基于PC的机器视觉的区别比较
- 如何计算无人机机架对应螺旋桨大小和尺寸!
- html中label文本垂直居中,如何在VB中实现label中的文字垂直方向居中?