ADB与Fastboot

来自Uotan Wiki · 刷机百科
QiHuan讨论 | 贡献2024年2月27日 (二) 16:48的版本 (增加了启动进入Fastboot)

Android 调试桥 (ADB)[1]

Android 调试桥 (adb) 是一种功能多样的命令行工具,可让您与设备进行通信。adb 命令可用于执行各种设备操作,例如安装和调试应用。adb 提供对 Unix shell(可用来在设备上运行各种命令)的访问权限。它是一种客户端-服务器程序,包括以下三个组件:

  • 客户端:用于发送命令。客户端在开发机器上运行。您可以通过发出 adb 命令从命令行终端调用客户端。
  • 守护程序 (adbd):用于在设备上运行命令。守护程序在每个设备上作为后台进程运行。
  • 服务器:用于管理客户端与守护程序之间的通信。服务器在开发机器上作为后台进程运行。

adb 的工作原理

当您启动某个 adb 客户端时,该客户端会先检查是否有 adb 服务器进程已在运行。如果没有,它会启动服务器进程。服务器在启动后会与本地 TCP 端口 5037 绑定,并监听 adb 客户端发出的命令。

注意:所有 adb 客户端均使用端口 5037 与 adb 服务器通信。

然后,服务器会与所有正在运行的设备建立连接。它通过扫描 5555 到 5585 之间(该范围供前 16 个模拟器使用)的奇数号端口查找模拟器。服务器一旦发现 adb 守护程序 (adbd),便会与相应的端口建立连接。

每个模拟器都使用一对按顺序排列的端口:一个用于控制台连接的偶数号端口,另一个用于 adb 连接的奇数号端口。例如:

模拟器 1,控制台:5554

模拟器 1,adb:5555

模拟器 2,控制台:5556

模拟器 2,adb:5557

依此类推。

如上所示,在端口 5555 处与 adb 连接的模拟器与控制台监听端口为 5554 的模拟器是同一个。

服务器与所有设备均建立连接后,您便可以使用 adb 命令访问这些设备。由于服务器管理与设备的连接,并处理来自多个 adb 客户端的命令,因此您可以从任意客户端或从某个脚本控制任意设备。

在设备上启用 ADB 调试

如要在通过 USB 连接的设备上使用 adb,您必须在设备的系统设置中启用 USB 调试(位于开发者选项下)。在 Android 4.2(API 级别 17)及更高版本中,开发者选项屏幕默认处于隐藏状态。如需将其显示出来,请启用开发者选项。

现在,您已经可以通过 USB 连接设备了。您可以通过安卓SDK平台工具执行 adb devices 来验证设备是否已连接。如果已连接,您将看到设备名称以“设备”形式列出。

启动进入 Fastboot 模式[2]

Fastboot 是一种引导加载程序模式,您可以在该模式下刷写设备。在设备冷启动过程中,可使用以下组合键进入 fastboot 模式:

谷歌

设备 代号 组合键
Pixel XL marlin 按住音量调低键,然后按住电源键。
Pixel sailfish 按住音量调低键,然后按住电源键。
hikey hikey 连接 J15 的引脚 1 - 2 和 5 - 6。
Nexus 6P angler 按住音量调低键,然后按住电源键。
Nexus 5X bullhead 按住音量调低键,然后按住电源键。
Nexus 6 shamu 按住音量调低键,然后按住电源键。
Nexus Player fugu 按住电源键。
Nexus 9 volantis 按住音量调低键,然后按住电源键。
Nexus 5 hammerhead 同时按住音量调高键和音量调低键,然后按住电源键。
Nexus 7 flo 按住音量调低键,然后按住电源键。
Nexus 7 3G deb 按住音量调低键,然后按住电源键。
Nexus 10 manta 同时按住音量调高键和音量调低键,然后按住电源键。
Nexus 4 mako 按住音量调低键,然后按住电源键。
Nexus 7 (2012) grouper 按住音量调低键,然后按住电源键。
Nexus 7 3G (2012) tilapia 按住音量调低键,然后按住电源键。
Nexus Q phantasm 启动设备,LED 指示灯亮起后用一只手盖住设备,直至指示灯变成红色。
Galaxy Nexus GSM maguro 同时按住音量调高键和音量调低键,然后按住电源键。
Galaxy Nexus (Verizon) toro 同时按住音量调高键和音量调低键,然后按住电源键。
Galaxy Nexus (Sprint) toroplus 同时按住音量调高键和音量调低键,然后按住电源键。
Motorola Xoom wingray 按住音量调低键,然后按住电源键。
Nexus S crespo 按住音量调高键,然后按住电源键。
Nexus SG crespo4g 按住音量调高键,然后按住电源键。

您还可以使用命令 adb reboot bootloader 直接在 Android 系统中重新启动进入引导加载程序,而无需使用任何组合键。

配置安卓 SDK 平台工具(Platform-Tools SDK)

adbfastboot包含在安卓SDK平台工具软件包中。如果想在命令行终端使用ADB和Fastboot工具,则需要在操作系统中配置安卓SDK平台工具。

Windows 平台(Windows 7 以上)

适用于 Windows 的安卓 SDK 平台工具内容

1、下载 Platform-Tools SDK

访问安卓 SDK 平台工具页面,选择下载适用于 Windows 的 SDK Platform-Tools ,阅读并同意条款及条件后点击下载。

下载完成后,解压压缩包中的 platform-tools 文件夹到一个方便寻找的目录(如 C 盘根目录)。记住这个目录的路径

2、配置环境变量

临时使用(不配置环境变量):使用“Win+R”打开“运行”窗口,输入“CMD”,在弹出的命令提示符中键入“cd [platform-tools文件夹的路径]”,回车。
  1. 打开高级系统设置:使用“Win+R”打开“运行”窗口,输入“SYSDM.CPL”,然后点击确定。
  2. 转到“高级”选项卡,点击“环境变量...”。
  3. 在“系统变量”一栏中选中变量“Path”,点击“编辑...”。
  4. 在弹出的“编辑环境变量”窗口中点击右侧的“新建”按钮。
  5. 在新一栏中填入 platform-tools 文件夹的路径。
  6. 点击“确定”。
配置环境变量示意图
配置环境变量示意图
测试 Platform-Tools
ADB的命令提示符输出
ADB 的命令提示符输出
  1. 使用“Win+R”打开“运行”窗口,输入“CMD”。
  2. 在弹出的命令提示符中键入“ADB”并回车。

如果一切正常,命令提示符应当输出类似以下的信息(输出信息显示了当前 ADB 工具、安卓 SDK 平台工具、Windows 的版本信息,adb.exe 的路径及 ADB 的命令语法等)。

USB 驱动程序

获取谷歌 USB 驱动程序[3]

注意:如果您使用的是 macOS 或 Linux 平台,则无需安装 USB 驱动程序。

访问 Get the Google USB Driver 页面,选择 Download the Google USB Driver ZIP file (ZIP). ,阅读并同意条款及条件后点击下载。

获取 OEM 驱动程序[4]

厂商 驱动 URL
宏碁(Acer) 上海:消费类客户服务支持|商用大客户服务支持|掠夺者部落服务支持|ConceptD 服务支持

国际:https://www.acer.com/worldwide/support/

阿尔卡特(Alcatel Mobile) https://www.alcatelmobile.com/support/
华硕(Asus) 中国:下载中心 | 官方支持 | ASUS 中国

国际:https://www.asus.com/support/Download-Center/

黑莓(Blackberry) https://swdownloads.blackberry.com/Downloads/entry.do?code=4EE0932F46276313B51570F46266A608
戴尔(Dell) https://support.dell.com/support/downloads/index.aspx?c=us&cs=19&l=en&s=dhs&~ck=anavml
FCNT https://www.fcnt.com/support/develop/#anc-03
HTC https://www.htc.com/support
华为(Huawei) 中国:服务与支持-华为官方售后服务 | 华为官网 (huawei.com)

英语:https://consumer.huawei.com/en/support/index.htm

英特尔(Intel) https://www.intel.com/software/android
京瓷(Kyocera) https://kyoceramobile.com/support/drivers/
联想(Lenovo) 简体中文(中国大陆):Lenovo联想售后客户服务中心,提供驱动下载,配置查询,保修服务-联想服务

英语(美国):https://support.lenovo.com/us/en/GlobalProductSelector

乐金(LGE) 中国:软件和固件 | LG 中国

英语(美国):https://www.lg.com/us/support/software-firmware

摩托罗拉(Motorola) 简体中文(中国大陆):Lenovo联想售后客户服务中心,提供驱动下载,配置查询,保修服务-联想服务

美国:https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/88481

联发科技(MTK) http://online.mediatek.com/Public%20Documents/MTK_Android_USB_Driver.zip
三星(Samsung) https://developer.samsung.com/galaxy/others/android-usb-driver-for-windows
夏普(Sharp) http://k-tai.sharp.co.jp/support/
索尼(Sony) 中国:SONY China Service-下载中心

国际:https://developer.sonymobile.com/downloads/drivers/

东芝(Toshiba) https://support.toshiba.com/sscontent?docId=4001814
小米(Xiaomi) https://web.vip.miui.com/page/info/mio/mio/detail?postId=18464849&app_version=dev.20051
中兴(ZTE) http://support.zte.com.cn/support/news/NewsDetail.aspx?newsId=1000442

参考文献