1.参考
http://blog.csdn.net/geniusmen/article/details/7892398
http://www.cnblogs.com/eastnapoleon/p/3270857.html
http://www.omappedia.org/wiki/Android_Fastboot#Updating_system_image_on_NAND
2.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
3.Android手机分区
每个分区都可以被烧写,并有相应的img文件对应:
- 开机启动画面区(splash1)
- 数据恢复区(recovery)
- 内核区(boot)
- 系统区(system)
- 数据缓存区(cache)
- 用户数据区(userdata)
4.fastboot命令
4.1 查看fastboot命令的帮助
输入fastboot,显示如下信息:
usage: fastboot [ <option> ] <command> commands:
update <filename> reflash device from update.zip
flashall flash boot + recovery + system
flash <partition> [ <filename> ] write a file to a flash partition
erase <partition> erase a flash partition
getvar <variable> display a bootloader variable
boot <kernel> [ <ramdisk> ] download and boot kernel
flash:raw boot <kernel> [ <ramdisk> ] create bootimage and flash it
devices list all connected devices
reboot reboot device normally
reboot-bootloader reboot device into bootloader options:
-w erase userdata and cache
-s <serial number> specify device serial number
-p <product> specify product name
-c <cmdline> override kernel commandline
-i <vendor id> specify a custom USB vendor id
-b <base_addr> specify a custom kernel base address
-n <page size> specify the nand page size. default: 2048
4.2 擦除分区:fastboot erase <partition>
$ sudo fastboot erase boot xx/boot.img
$ sudo fastboot erase system xx/system.img
$ sudo fastboot erase userdata xx/userdata.img
$ sudo fastboot erase cache xx/cache.img
4.3 烧写指定分区:fastboot flash <partition> [*.img]
$ sudo fastboot flash boot path-to-kernel/boot.img
$ sudo fastboot flash zimage path-to-kernel/arch/arm/boot/zImage
$ sudo fastboot flash system path-to-system/system.img
$ sudo fastboot flash splash1 开机画面
4.4 烧写所有分区:fastboot flashall
注意:此命令会在当前目录中查找所有img文件,将这些img文件烧写到所有对应的分区中,并重新启动手机。
$ sudo fastboot flashall
4.5 一次烧写boot,system,recovery分区:fastboot update <*.zip>
创建包含boot.img,system.img,recovery.img文件的update.zip。
$ sudo fastboot update update.zip
4.6 重启手机
$ sudo fastboot reboot
4.7 以指定的img或bin 启动系统,通常用于调试
In addition to flashing the eMMC, Fastboot can also be used to boot from files already flashed to the eMMC. To do, so start Fastboot on the target, and then run a command on the host PC, for example to boot the u-boot:
$ sudo fastboot boot u-boot.bin
4.8 更新eMMC分区
Regions in eMMC are given names. Their offsets and sizes are set in u-boot in the mmc.c file of the board directory that you are using. For example, for the Blaze, this file is u-boot/board/omap4430sdp/mmc.c:
static struct partition partitions[] = {
{ "-", },
{ "xloader", },
{ "bootloader", },
/* "misc" partition is required for recovery */
{ "misc", },
{ "-", },
{ "efs", },
{ "recovery", * },
{ "boot", * },
{ "system", * },
{ "cache", * },
{ "userdata", },
{ , },
};
修改上面的内容,然后执行:
$ sudo fastboot oem format
4.9 退出fastboot
- 拔usb
- ctrl+c
- 超时退出命令
# fastboot 100
或
# fastboot
4.10 获取客户端(手机端)变量信息
$sudo fastboot getvar version:version-bootloader:version-baseband:product:serialno:secure
getvar后和参数用:分开,它们的含义如下:
version | 客户端支持的fastboot协议版本 |
version-bootloader | Bootloader的版本号 |
version-baseband | 基带版本 |
product | 产品名称 |
serialno | 产品序列号 |
secure | 返回yes 表示在刷机时需要获取签名 |
4.11 如何查看fastboot是否成功
fastboot支持环境变量文件,通常在fastboot烧写nand flash时,会将偏移量和大小写入环境变量中,命名格式为:
- <partition name>_nand_offset
- <partition name>_nand_size
例如,内核烧写完成后printenv可以看到:
- kernel_nand_offset=0x140000
- kernel_nand_size=0x1f70000
4.12 u-boot中定义定义的偏移和地址
name | offset | size | type of file | usual file |
xloader | 0x00000000 | 0x00080000 | xloader binary | MLO |
bootloader | 0x00080000 | 0x00180000 | uboot binary | u-boot.bin |
environment | 0x001C0000 | 0x00040000 | text file | list of variables to set |
kernel | 0x00200000 | 0x01D00000 | kernel or kernel + ramdisk | uImage, uMulti |
system | 0x02000000 | 0x0A000000 | yaffs2 | system.img |
userdata | 0x0C000000 | 0x02000000 | yaffs2 | userdata.img |
cache | 0x0E000000 | 0x02000000 | yaffs2 | ? |
fastboot重用内核的nand地址分配方式,并且大部分是可以变化的,但是xloader、bootloader 、environment地址是不变的。
4.13 文件大小限制
最大下载文件大小为240M。
fastboot 教程的更多相关文章
-
Fastboot的使用简单教程
大家都知道HTC手机重新启动进入所谓的project模式,就是HBOOT,然后能够进入FASTBOOT界面,在这个界面.我们能够在电脑端能够做非常多事,特别是HBOOT被改动过,假设是ENG S-OF ...
-
New Moto X 2014 全版本RSD&;Fastboot刷官方底包教程
本来我是不想写教程的,因为这样的教程实在是太多了,基本上大家也都会了,为什么还要多次一举,发来发去的呢?实在没什么意义!但是我觉得吧,别人的教程写的都太过简单,太过明了了,有时候我们很难理解,这到底是 ...
-
编译android源码官方教程(5)编译完之后刷机、编译fastboot
Running Builds IN THIS DOCUMENT Building fastboot and adb Booting into fastboot mode Unlocking the b ...
-
PyQt5系列教程(五)制作fastboot烧写器
软硬件环境 Windows 7 Python 3.4.2 PyQt 5.5.1 PyCharm 5.0.2 前言 fastboot是针对Android设备的一种刷机方式,它比recovery更底层,刷 ...
-
华为U8810的用户如何获取ROOT权限详细教程
由于在论坛里看到有人在找这个手机的详细的root教程,所以刷机啦小编在这里整理了一下方便新手来操作,其实这个手机root起来还是蛮简单的,只需要一个root软件就可以了,相当于一键root了,在这里整 ...
-
HTC One M7简易刷Recovery教程
HTC One M7作为当下HTC旗下的旗舰热门机,用户们对于刷机的需求都比较强烈,对于刷ROM的前提就是要刷入Recovery,当然作为安卓智能手机HTC one而言也不例外,最近有些用 ...
-
ADB工具包15秒快速安装器,已集合ADB、FASTBOOT工具箱和最新的驱动程序
http://www.cnroms.com/adb-and-fastboot-toolkit-with-google-usb-drivers.html 通过电脑管理安卓手机需要的三个最常用的工具包集合 ...
-
[Android Pro] Android fastboot刷机和获取Root权限
参考文章: https://developers.google.com/android/nexus/images 转载自: http://www.inexus.co/article-1280-1 ...
-
小米2/2S 手机由 Smartisan OS ROM 刷回 MIUI 教程
刷机所需文件1.请前往 MIUI 官网下载小米 2/2S 标准版 MIUI ROM 包.下载地址:http://www.miui.com/getrom.php?r=2:下载后请将原文件名修改为“upd ...
随机推荐
-
Lua的string和string库总结
Lua有7种数据类型,分别是nil.boolean.number.string.table.function.userdata.这里我总结一下Lua的string类型和string库,复习一下,以便加 ...
-
【Java EE 学习 21 上】【其它类型的监听器】【使用HttpSessionActivationListener监听session的活化和钝化】
一.ServletContextListener Method Summary void contextDestroyed(ServletContextEvent sce) R ...
-
OpenMesh 读写网格控制(读取写入纹理坐标,法向等)
OpenMesh读取网格默认是不自动读取obj网格中的法向,纹理坐标等信息的,写入网格同样也是.所以要读取(或写入)这些信息需要修改默认的选项. 先看一下其读写网格的函数 template<cl ...
-
从Spring容器中获取Bean。ApplicationContextAware
引言:我们从几个方面有逻辑的讲述如何从Spring容器中获取Bean.(新手勿喷) 1.我们的目的是什么? 2.方法是什么(可变的细节)? 3.方法的原理是什么(不变的本质)? 1.我们的目的是什么? ...
-
LINUX的两种后门总结(suid shell与inetd)
前提: 你现在已经是root用户, 想留一个后门以便日后再一次进入. 系统环境: 1 dawg:~# uname -a 2 Linux dawg 2.4.20-1-386 #3 Sat Mar 22 ...
-
echarts 折线柱形上方显示自定义格式数据
series:[ { name: '成单率', type: 'line', data: valueArr2, itemStyle: { normal: { label: { show:true, po ...
-
PySide——Python图形化界面
PySide——Python图形化界面 PySide——Python图形化界面入门教程(四) PySide——Python图形化界面入门教程(四) ——创建自己的信号槽 ——Creating Your ...
-
cmd中关闭windows2008错误弹窗
net stop sharedaccess reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows /v ErrorMode / ...
-
Git 进阶 —— 远程仓库
一.远程仓库怎么玩 1. 自己搭建一个运行Git的服务器 Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上,但肯定有一台机器有着最原始的版本库,然后别的机器来克隆这个原始版本库,这 ...
-
解析Java中的String、StringBuilder、StringBuffer类(一)
引言 String 类及其相关的StringBuilder.StringBuffer 类在 Java 中的使用相当的多,在各个公司的面试中也是必不可少的.因此,在本周,我打算花费一些时间来认真的研读一 ...