如何在Windows/Linux系统上安装adb

官方文档-adb的工作原理: Android 调试桥 (adb) | Android Studio | Android Developers

一、Windows安装步骤

  1. 下载地址:
    https://developer.android.com/tools/releases/platform-tools?hl=zh-cn

  2. 下载后得到压缩包(windows为例)

  1. 把 ZIP 解压到C:\platform-tools
  1. 进入目录并查看 adb 版本
bash 复制代码
cd C:\platform-tools
.\adb.exe version
.\adb.exe devices
  1. 永久加入 PATH

(1)图形界面(推荐) :系统 → 高级系统设置 → 环境变量 → 在 Path 中新增 C:\platform-tools → 确定 → 重新打开 PowerShell。

(2)PowerShell(非交互式立即生效需重开终端)

bash 复制代码
setx PATH "$($env:PATH);C:\platform-tools"
# 关闭并重新打开新的 PowerShell 窗口以生效

以上两种方式添加至环境变量均可

  1. Windows 驱动(若 adb devices 无法识别)

(1)首先用官方 Google USB Driver(或厂商 OEM 驱动)来解决大多数识别/驱动问题;Google 驱动下载方式见官方说明。

(2)若是三星/小米/华为等,优先安装对应 OEM 驱动(OEM 列表在 Android 官网上有指引)

官网链接:https://developer.android.com/studio/run/win-usb?hl=zh-cn

7.第一次连接(USB 调试授权)

(1)手机:设置 → 关于手机 → 连续点"版本号/构建号"7次 → 开启开发者选项 → 开启"USB 调试"。

(2)连接电脑,手机会弹出 RSA 公钥授权,点 允许(可勾"始终允许此电脑")

(3)Windows PowerShell 验证:

bash 复制代码
adb devices
# 如果显示 device 则成功;若显示 unauthorized,请在手机上确认授权

二、Linux安装步骤

  1. 用 apt(快速、适合服务器/CI)
bash 复制代码
sudo apt update
sudo apt install -y android-tools-adb android-tools-fastboot
# 测试
adb version
fastboot --version

优点:安装快、依赖管理;缺点:版本可能落后,不含 platform-tools 的最新特性。

  1. 下载官方 Platform-Tools(推荐开发/调试用)

(1)在浏览器打开 Android SDK Platform-Tools 官方下载页并下载 Linux ZIP(或用 wget 下载官方链接)

(2)解压并把目录加入 PATH(示例放到 ~/platform-tools):

bash 复制代码
cd ~
unzip ~/Downloads/platform-tools-latest-linux.zip -d .
# 把 platform-tools 加到 PATH(追加到 ~/.profile 或 ~/.bashrc)
echo 'export PATH="$HOME/platform-tools:$PATH"' >> ~/.profile
source ~/.profile
# 验证
adb version
fastboot --version

优点:最新版,包含 adb 和 fastboot,推荐用于本地开发或新设备。

  1. udev 规则 --- 让普通用户无需 sudo 使用 adb

如果 adb devices 空白或提示权限错误,需要添加 udev 规则。

(1)找到设备的 vendor id(插入手机后运行)

bash 复制代码
lsusb
# 输出示例:Bus 001 Device 006: ID 18d1:4ee2 Google Inc.
# vendor id 就是前面的 18d1(四位十六进制)

(2)创建 / 修改 udev 规则文件(添加常用厂商 id)

bash 复制代码
sudo tee /etc/udev/rules.d/51-android.rules <<'EOF'
# 通用示例(按需添加或替换 id)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"   # Google
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"   # Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"   # Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev"   # Xiaomi (示例)
EOF

注意:idVendor 必须是小写四位十六进制(用 lsusb 获得)。不要用过多陌生规则;按需添加设备对应的 id。

(3)重新加载规则并触发

bash 复制代码
sudo udevadm control --reload-rules
sudo udevadm trigger

(4)将当前用户加入 plugdev(如果还没加入)

bash 复制代码
sudo usermod -aG plugdev $USER
# 注销并重新登录,或执行 `newgrp plugdev`(但通常重启/重新登录更稳)

(5)重启 adb 并检查设备

bash 复制代码
adb kill-server
adb start-server
adb devices
  1. 首次连接与授权

(1)手机:打开 开发者选项 → USB 调试(若无开发者选项,设置→关于手机→连点"版本号/构建号"启用)

(2)连接 USB:手机上会弹出 "允许 USB 调试?" (显示电脑 RSA 指纹),点 允许 (可勾"始终允许此电脑")

(3)在电脑上检查

bash 复制代码
adb devices
# 正常状态会显示: <serial>    device
# 若显示 unauthorized,见下文排查
  1. 常见权限/授权问题的排查

(1)若 adb devices 显示 unauthorized

bash 复制代码
# 删除本机 adb key(会在下次连接时重新生成授权弹窗)
adb kill-server
rm -f ~/.android/adbkey* 
adb start-server
adb devices

(2)然后在手机上接受新的授权弹窗

(3)若 adb devices 没设备显示,但 lsusb 能看到手机:检查 udev 规则是否包含该 vendor id,是否已 reload,并确认用户在 plugdev 组。

(4)若仍失败,尝试:

  • 换 USB 数据线

  • 换 USB 插口

  • 在手机上把 USB 模式切换为 File Transfer / MTP(部分设备只有在 MTP 模式下 adb 更稳定)。

  • 重启手机与电脑的 adb 服务:

    bash 复制代码
    adb kill-server && adb start-server
  1. fastboot(bootloader)使用提示

要用 fastboot,需要把设备重启到 bootloader:

bash 复制代码
adb reboot bootloader
# 然后在 fastboot 模式运行:
fastboot devices
# 常见 fastboot 操作(风险操作,注意数据与锁定状态):
fastboot oem unlock        # 解锁 bootloader(厂商不同命令不同)
fastboot flash recovery recovery.img

警告:fastboot 操作可能清除数据或导致设备变砖,谨慎使用并确保你知道每个命令的含义。

相关推荐
流星白龙17 小时前
【MySQL高阶】7.MySQL日志
数据库·mysql·adb
流星白龙17 小时前
【MySQL高阶】0.MySQL的安装
数据库·mysql·adb
流星白龙19 小时前
【MySQL高阶】6.MySQL数据目录,日志
android·mysql·adb
流星白龙20 小时前
【MySQL高阶】2.MySQL命令行客户端(2)
android·mysql·adb
流星白龙20 小时前
【MySQL高阶】5.MySQL服务器简介
服务器·mysql·adb
流星白龙20 小时前
【MySQL高阶】9.在一台机器上运行多个MySQL实例
数据库·mysql·adb
流星白龙1 天前
【MySQL高阶】8.MySQL系统库
android·mysql·adb
亚空间仓鼠4 天前
Docker容器化高可用架构部署方案(十七)
adb
AI人工智能+电脑小能手4 天前
【大白话说Java面试题 第80题】【Mysql篇】第10题:MySQL 在什么条件下索引失效?
java·开发语言·mysql·adb·面试
会Tk矩阵群控的小木4 天前
深入解析tk矩阵系统ADB实时投屏与多设备控制实现
运维·线性代数·adb·矩阵·个人开发