fastboot简介(android烧录指令)

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,显示如下信息:

  update  从 update.zip 刷新设备

  flashall flash boot + recovery + system 

  flash  [  ] 将文件写入 flash 分区

  erase  擦除 flash 分区

  getvar  显示引导加载程序变量

  boot  [  ] 下载并启动内核

  flash:raw boot  [  ] 创建 bootimage 并刷新

  设备 列出所有连接的设备

  正常重启重启设备

  reboot-bootloader 将设备重启到引导加载程序

选项:

  -w 擦除用户数据和缓存

  -s  指定设备序列号

  -p  指定产品名称

  -c  覆盖内核命令行

  -i  指定自定义 USB 供应商 id 

  -b  指定自定义内核基地址

  -n  指定nand 页面大小。默认值:2048

4.2 分区:fastboot erase

sudo fastboot 擦除引导 xx/boot.img 

$ sudo fastboot 擦除系统 xx/system.img 

$ sudo fastboot 擦除用户数据 xx/userdata.img 

$ sudo fastboot 擦除缓存 xx/cache.img

4.3 烧写指定分区:fastboot flash [*.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 快速启动重启

4.7 以指定的img或bin启动系统,通常用于调试

  除了刷入 eMMC,Fastboot 还可以用来从已经刷入 eMMC 的文件启动。为此,请在目标上启动 Fastboot,然后在主机 PC 上运行命令,例如启动 u-boot:

 sudo fastboot 引导 u-boot.bin

4.8 更新eMMC分区

  eMMC 中的区域被命名。它们的偏移量和大小在您正在使用的板目录的 mmc.c 文件中的 u-boot 中设置。例如,对于 Blaze,此文件为 u-boot/board/omap4430sdp/mmc.c:

static struct partition partitions[] = { 

    { "-", }, 

    { "xloader", }, 

    { "bootloader", }, 

    /* "misc" partitions is required for recovery */ 

    { "misc", }, 

    { " -", }, 

    { "efs", }, 

    { "recovery", * }, 

    { "boot", * }, 

    { "system", * }, 

    { "cache", * }, 

    { "userdata", } , 

    { , }, 

};

  修改上面的内容,然后执行:

sudo fastboot oem 格式

4.9 退出fastboot

  • 拔usb
  • Ctrl+C
  • 辞职命令 
    #fastboot 100
    
    或
    
    #fastboot 

4.10 获取信息客户端(手机端)

sudo fastboot getvar version:version-bootloader:version-baseband:product:serialno:secure

  getvar 后和参数使用:单独使用,它们的含义如下:

版本 客户端支持的fastboot协议版本
版本引导加载程序 Bootloader的版本号
版本基带 基带版本
产品 产品名称
序列号 产品序列号
安全的 返回yes 表示在刷机时需要获取签名

4.11 如何查看fastboot是否成功

  fastboot通常支持环境nand flash时,fastboot为变量写入中,命名量和大小和写入环境变量

  • <分区名称>_nand_offset
  • <分区名称>_nand_size

  例如,内核烧写完成后printenv可以看到:

  • kernel_nand_offset=0x140000
  • kernel_nand_size=0x1f70000

4.12 u-boot中定义的偏移和地址

姓名 抵消 尺寸 文件类型 普通文件
加载器 0x00000000 0x00080000 xloader 二进制文件 MLO
引导加载程序 0x00080000 0x00180000 uboot 二进制 u-boot.bin
环境 0x001C0000 0x00040000 文本文件 要设置的变量列表
核心 0x00200000 0x01D00000 内核或内核+ ramdisk uImage、uMulti
系统 0x02000000 0x0A000000 yaffs2 系统.img
用户数据 0x0C000000 0x02000000 yaffs2 用户数据.img
缓存 0x0E000000 0x02000000 yaffs2 ?

  fastboot重用内核的nand地址分配,并且对象是可以变化的方式,但是xloader、bootloader、环境地址是不变的。

4.13 文件大小限制

  最大下载文件大小为240M。

你可能感兴趣的:(android,java)