fastboot协议是PC通过USB与手机上的bootloader通信的协议。适用于Linux,Windows,OSX等平台。

基本配置要求:

1、USB连接PC与手机。

2、对于high-speec USB,包的最大尺寸必须是512byte.对于full-speed USB,包的最大尺寸必须是64byte。

3、协议由PC端驱动。

协议传输过程如下:

1、PC向手机发送一个命令,命令由ASCII字符组成,必须存在在一个不大于64byte的包里。

2、手机向PC响应一个不大于64byte的包。包的最前面四个byte是“OKAY”、“FAIL”、“DATA”、“INFO”中的一个。后面如果还有byte,包含就是ASCII信息。下面具体解释

INFO:后面的60个byte代表的信息被显示完成后,跳到#2继续执行。

FAIL:命令执行失败。后面的60个byte是需要显示给用户的失败信息。

OKAY:命令执行成功。跳到#1.

DATA:命令执行成功,开始进入数据传输阶段。一个DATA响应包的大小是12byte,通常是DATA00000000这样的形式,后面的8个数字代表的要传输的数据包的总大小。

3、如果#2时,PC收到的是DATA命令的话,就开始传输数据。0byte数据会被忽略。当#2指示的数据大小被传输完成时,数据传输结束。

例子:

Host:  "getvar:version"          查看版本号

Client: "OKAY0.4"                  返回版本号

Host:  "getvar:nonexistant"   查看一些未定义的变量

Client: “OKAY”                       返回值“”

Host:  “download:00001234” 请求0x1234个byte的数据

Client: "DATA00001234"       准备好接收数据

Host:  "< 0x1234 bytes >"    发送数据

Client "OKAY"                        成功

Host:  "flash:bootloader"        把数据刷到bootloader中。

Client "INFOerasinig flash"     指明状态或进度

"INFOwriting flash"

"OKAY"                       成功

Host:  "powerdown"              发送一个关机命令

Client: "FAILunknown command"失败

命令手册:

1、命令参数格式遵守printf-style

2、命令都是ASCII字符串,不能包含引号,不用以0byte结尾

3、本文档中的命令都是以小写字母开头,为了兼容,OEM的命令不要以小写字母开头。

"getvar:%s"

从bootloader读取一个配置/版本变量。变量值跟在OKAY响应后面返回。

“download:%08x”

把数据写入内存,这些数据会被后面执行的“boot”,"ramdisk","flash"等使用。Client的RAM如果有足够的空间的话,会返回一个“DATA%08x”。否则返回“FAIL”。数据大小会被记录下来。

"verify:%08x"

发送一个数字签名来验证下载的数据。如果bootloader当前是“secure”模式,签名会被使用。如果是“flash”和“boot”模式的话,签名被忽略。

"flash:%s"

把前面下载的image写到指定名字的分区中。

"erase:%s"

擦除指定名字的分区。

"boot"

前面下载的数据是一个boot.imgand should be booted according to the normal

procedure for a boot.img

"continue"

Continue booting as normal (if possible)

"reboot"

重启设备

"reboot-bootloader"

重启并回到bootloader,这对那些需要先升级bootloader才能升级其它分区的升级过程很有用。

"powerdown"

关闭设备。

Client端的变量

"getvar:%s"命令可以读一些client端的变量。这些变量通常会可以告诉我们设备以及安装在设备上的软件的信息。目前已经定义的变量如下:

version

当前支持的FastBoot协议版本,对这个文档来说,它的值应该是“0.3”

version-bootloader

Bootloader的版本号

version-baseband

Baseband软件的版本

product

产品的名字

serialno

产品的序列号(serial number)

secure

如果值是“yes”,表示这是一个secure的bootloader,在安装或者boot那些image之前需要一个签名

另外,这些变量的名字都是以小写字母开头,为了兼容性考虑,OEM的变量名字不要以小写字母开头。

linux安装安卓fastboot,Android的fastboot协议相关推荐

  1. 安装安卓(Android)x86系统

    1.windows server 2008 r2 系统没有显卡目前对夜神模拟器不支持安装,会报显卡版本太低 2.windows server 2008 r2 系统没有显卡安装逍遥安卓模拟器,可以安装上 ...

  2. VMware虚拟机安装安卓(Android)x86系统图文教程最新版

    来源:合肥电脑维修作者:老刘 在电脑上安装的安卓系统称为"(Android)x86",下载地址为:http://www.android-x86.org/download/,目前最新 ...

  3. linux与安卓系统目录,android系统架构及源码目录结构

    1. android系统架构: android系统架构采用了分层架构的思想,如下图所示,从上到下共4层,分别为:应用程序层.应用程序框架层.系统库和android运行时层.linux内核层. 每层功能 ...

  4. linux chroot安卓,在Android设备上安装 GNU/Linux Chroot 环境

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 3-安装与配置系统 3-Install and Configure system 因为是chroot环境,系统不用启动,所以过程比安装ARCH(x86)更 ...

  5. arm linux运行安卓app,Android x86 下运行纯ARM版APP

    Android x86 默认不带houdini,运行纯ARM版会提示: 很抱歉,"xxxx"已停止运行 设置->应用兼容性->打开 终端模拟器 $ su # enabl ...

  6. 深度linux安装安卓软件,Ubuntu 用户安装深度软件中心教程

    Linux Deepin 11.12 搭载最新版深度软件中心 2.0.目前已支持简体中文.繁体中文.英文三个语言版本.深度软件中心2.0 明显功能有:一键安装.升级软件,支持皮肤更换.并行下载,智能清 ...

  7. ME860安装安卓电子市场(android market)

    安装过程: 我的国行ME860没有预装电子市场,有些国外的好软件无法装入我的手机,很痛苦,终于花了一些时间,成功安装电子市场.这里大致总结一下安装要点,1. 必须先安装Google service f ...

  8. linux和安卓交互,Android中webview和js之间的交互及注意事项

    1.Android中利用webview调用网页上的js代码. Android 中可以通过webview来实现和js的交互,在程序中调用js代码,只需要将webview控件的支持js的属性设置为true ...

  9. ubuntu系统安装安卓模拟器(Android SDK)的方法

    ubuntu或者别的linux系统安装安卓模拟器(Android SDK)的方法跟Windows差不多,今天安卓部落就教大家怎么样在ubuntu环境下安装安卓模拟器. 首先下载Android SDK ...

  10. vmware 快照用关机吗_vmware安装安卓

    1.镜像下载地址 Porting Android to x86​www.android-x86.org 2.安装步骤 VMware虚拟机安装安卓(Android)x86系统图文教程最新版​www.ji ...

最新文章

  1. 华为手机微信网络连接到服务器失败怎么办,微信H5支付在华为手机里报错 网络环境未能通过安全验证,请稍后再试 怎么解决啊 试了好多方法也不行...
  2. EasyExcel 2 上传 下载
  3. sql count用法_SQL是一门手艺
  4. Linux赋予普通用户root权限
  5. 什么是医疗物联网(IoMT)?
  6. RelativeLayout重要属性
  7. div 隐藏_div的position属性
  8. 酷炫星空公告维护页源码
  9. strcpy和strcat
  10. LuaForUnity7:Lua表与元表
  11. Java-----exe
  12. 关于禅道项目管理软件
  13. IDEA 文件对比功能图解
  14. Python 和 奥数 — 同余法求数值
  15. 使用阿里云镜像加速器--docker
  16. 解决System进程占用80端口的问题
  17. 如何写出成功的商业计划书
  18. iOS打开应用提示未受信任的企业级开发者
  19. java计算机毕业设计快递配送平台源码+mysql数据库+系统+lw文档+部署
  20. 【Pygame小游戏】超好玩的——Python版“愤怒的小鸟”,我能玩上一整天(附源码)

热门文章

  1. 在MATLAB中处理RAW图像
  2. 调用阿里API获取城市天气信息
  3. 人体姿态识别方案详解
  4. Pytorch:目标检测网络-FPN
  5. 毕设+电路板(BTN7960驱动电路+LM2596/AMS117稳压电路+蜂鸣器+STM32F103C8T6最小系统电路)
  6. 一个可以免费下载数据集的网站
  7. J-Link RTT Viewer 的各种不爽以及解决方案
  8. SODB RBSP EBSP的区别
  9. 同济线性代数教材(第五版)-第1章 行列式
  10. html里制作简单导航栏