Android刷机教程
我的机器是Nexus 5
一. 安装驱动
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104854991-2143064270.png)
如何进入fastboot模式
1. 拔掉数据线,将手机关机
2. 关机后同时按住【音量减小键】和【开关机键】即可进入Fastboot模式
开启usb调试 --> 勾选usb调试
adb devices可以看到设备名即可
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104855413-117506302.png)
二. 下载刷机包
这是Android 4.4的刷机包,大家可以根据需求自己寻找指定的版本的刷机包
下载完毕后的文件如下:
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104855866-1255543717.png)
三. bootloader锁定与解锁
Nexus 5 解锁 bootloader 和重新锁定 bootloader
锁定状态如下:
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104856366-2122777633.jpg)
输入命令
fastboot oem unlock 解锁
fastboot oem lock 锁定
解锁时可能会需要你控制音量键移动选择Yes,电源键确定即可
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104856929-622340049.jpg)
解锁定后效果
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104857710-437157314.jpg)
四.开始刷机
在fastboot模式下
双击刷机包下的flash-all.bat就可以开始一键刷机了
经过一段时间的等待就刷机好了
五.fastboot命令大全
命令列表:
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104858804-150726900.jpg)
Android分区:
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104859397-1949183094.png)
常用命令情景:
1.升级系统
fastboot flash bootloader u-boot.bin
fastboot flash kernel uImage
fastboot flash system system.img
fastboot flash userdata userdata.img
fastboot flash ramdisk ramdisk-uboot.img
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.重启系统
fastboot reboot
3.不烧写flash情况下调试
fastboot boot uImage 或者u-boot.bin
4.查看版本号
fastboot getver:version
5.复位到bootloader
fastboot reboot-bootloader
6.命令格式
主机端发送字符串的命令,字符串小于等于64个字节,客户端首先返回四个字节的内容,是OKAY、FAIL、DATA、INFO之一,随后跟着是信息或数数据。
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
8.获取客户端(手机端)变量信息
fastboot getvar version:version-bootloader:version-baseband:product:serialno:secure
version 客户端支持的fastboot协议版本
version-bootloader Bootloader的版本号
version-baseband 基带版本
product 产品名称
serialno 产品序列号
secure 返回yes 表示在刷机时需要获取签名
支持的参数
偏移和地址在u-boot中定义,要想使用好fastboot,就必须要知道参数名称与文件的对应关系。
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104859757-394715064.png)
![](https://images2015.cnblogs.com/blog/198684/201608/198684-20160827104900382-2082259500.png)
9.环境变量
fastboot支持环境变量文件,通常在fastboot烧写nand flash时,会将偏移量和大小写入环境变量中,命名格式为:
<partition name>_nand_offset
<partition name>_nand_size
例如,内核烧写完成后printenv可以看到:
kernel_nand_offset=0x140000
kernel_nand_size=0x1f70000
10.查看USB设备
查看连接到OTG的USB设备情况,lsusb:
Bus 008 Device 030: ID 0451:cafe Texas Instruments, Inc. <----- fastboot
更多细节查看cat /proc/bus/usb/devices
11.静态模块地址
fastboot重用内核的nand地址分配方式,并且大部分是可以变化的,但是下面列出来的这些地址是不变的。
name offset size
xloader 0x00000000 0x00080000
bootloader 0x00080000 0x00180000
environment 0x001C0000 0x00040000
12 .文件大小限制
最大下载文件大小为240M。
13.擦除分区:
fastboot erase {partition} 例:fastboot erase boot或fastboot erase system等。
14 .烧写指定分区:
fastboot flash {partition} {*.img} 例:fastboot flash boot boot.img或fastboot flash system system.img等。
15.烧写所有分区:
fastboot flashall 注意:此命令会在当前目录中查找所有img文件,将这些img文件烧写到所有对应的分区中,并重新启动手机。
16 .一次烧写boot,system,recovery分区:
(1)创建包含boot.img,system.img,recovery.img文件的zip包。
(2)执行:fastboot update {*.zip}
17.烧写开机画面:
fastboot flash splash1 开机画面
18.重启手机:
fastboot reboot
fastboot reboot-bootloader