首页 > 代码库 > Android刷机教程

Android刷机教程


我的机器是Nexus 5

一. 安装驱动
技术分享

如何进入fastboot模式
1. 拔掉数据线,将手机关机
2. 关机后同时按住【音量减小键】和【开关机键】即可进入Fastboot模式

开启usb调试  --> 勾选usb调试

adb devices可以看到设备名即可
技术分享


二. 下载刷机包
这是Android 4.4的刷机包,大家可以根据需求自己寻找指定的版本的刷机包
https://dl.google.com/dl/android/aosp/hammerhead-kot49h-factory-02006b99.tgz

下载完毕后的文件如下:
技术分享


三. bootloader锁定与解锁
Nexus 5 解锁 bootloader 和重新锁定 bootloader

锁定状态如下:
技术分享

输入命令
fastboot oem unlock     解锁
fastboot oem lock         锁定

解锁时可能会需要你控制音量键移动选择Yes,电源键确定即可
技术分享

解锁定后效果
技术分享


四.开始刷机
在fastboot模式下
双击刷机包下的flash-all.bat就可以开始一键刷机了
经过一段时间的等待就刷机好了

五.fastboot命令大全
命令列表:
技术分享

Android分区:
技术分享


常用命令情景:
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,就必须要知道参数名称与文件的对应关系。
技术分享

技术分享

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





来自为知笔记(Wiz)


Android刷机教程