Linux系统下安装和配置ADB环境的完整步骤

 更新时间:2026年04月15日 09:21:33   作者:独隅  
本文详细介绍了在Linux系统下安装和配置ADB环境的完整步骤,针对Ubuntu/Debian、Fedora/CentOS和Arch Linux等主流发行版提供了不同的安装方法,重点讲解了关键的USB权限配置,需要的朋友可以参考下

引言

本文详细介绍了在Linux系统下安装和配置ADB环境的完整步骤。针对Ubuntu/Debian、Fedora/CentOS和Arch Linux等主流发行版提供了不同的安装方法,重点讲解了关键的USB权限配置(包括官方脚本和手动规则设置两种方式)。文章还包含连接验证、环境变量配置、常见故障排查(如权限问题、设备识别失败等)以及无线调试方法。特别强调了Linux特有的权限设置要点,帮助开发者快速搭建完整的Android调试环境。

在 Linux 系统下配置 ADB (Android Debug Bridge) 环境通常比 Windows 更简单,因为大多数发行版都通过包管理器直接支持。

以下是针对 Ubuntu/DebianFedora/CentOSArch Linux 的详细安装与配置指南,包含权限设置(这是 Linux 下最容易出错的地方)。

第一步:安装 ADB 工具

根据你的 Linux 发行版选择对应的安装命令。

1. Ubuntu / Debian / Linux Mint / Kali

使用 apt 包管理器:

sudo apt update
sudo apt install adb fastboot

2. Fedora / CentOS / RHEL

使用 dnfyum

# Fedora
sudo dnf install android-tools

# CentOS/RHEL (可能需要启用 EPEL 源)
sudo yum install android-tools

3. Arch Linux / Manjaro / EndeavourOS

使用 pacman

sudo pacman -S android-tools

4. 通用方法 (手动下载最新版)

如果软件源中的版本太老,可以手动下载 Google 官方最新版:

# 1. 下载
wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip -O platform-tools.zip

# 2. 解压到用户目录
unzip platform-tools-latest-linux.zip -d ~
unzip platform-tools.zip -d ~

# 3. 配置环境变量 (永久生效)
echo 'export PATH=$HOME/platform-tools:$PATH' >> ~/.bashrc
# 如果是 zsh
echo 'export PATH=$HOME/platform-tools:$PATH' >> ~/.zshrc

# 4. 刷新配置
source ~/.bashrc  # 或 source ~/.zshrc

第二步:配置 USB 权限规则 (关键步骤)

在 Linux 下,普通用户默认没有权限直接访问 USB 设备。如果不配置这一步,运行 adb devices 时会显示 ???????????? no permissions 或直接列表为空。

方法 A:使用官方提供的 udev 规则脚本 (推荐)

如果你是通过“通用方法”下载的官方包,里面包含了一个设置脚本:

# 进入平台工具目录
cd ~/platform-tools

# 运行规则设置脚本 (需要 sudo)
sudo ./udev/setup_android_sdk_rules.sh

运行后需重新插拔手机或重启 udev 服务。

方法 B:手动创建规则文件 (适用于包管理器安装)

如果上述脚本不存在,请手动创建规则文件。

创建规则文件

sudo nano /etc/udev/rules.d/51-android.rules

填入以下内容 (涵盖主流厂商):

# Google
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
# Samsung
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
# Xiaomi
SUBSYSTEM=="usb", ATTR{idVendor}=="2717", MODE="0666", GROUP="plugdev"
# Huawei
SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"
# OnePlus
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev"
# Sony
SUBSYSTEM=="usb", ATTR{idVendor}=="0fce", MODE="0666", GROUP="plugdev"
# LG
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666", GROUP="plugdev"
# Motorola
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", MODE="0666", GROUP="plugdev"
# Generic
SUBSYSTEM=="usb", ATTR{idVendor}=="*", MODE="0666", GROUP="plugdev"

注:MODE="0666" 表示所有用户可读写,最简单粗暴;更安全的方式是设置 GROUP="plugdev" 并将用户加入该组。

重载规则并重启服务

sudo udevadm control --reload-rules
sudo service udev restart
# 或者
sudo systemctl restart systemd-udevd

将当前用户加入 plugdev 组 (如果上面用了 GROUP)

sudo usermod -aG plugdev $USER

注意:加入组后需要注销并重新登录(或重启电脑)才能生效。

第三步:基础使用与验证

手机端设置

  • 进入 设置 -> 关于手机 -> 连续点击 版本号 开启开发者模式。
  • 进入 开发者选项 -> 开启 USB 调试
  • 用数据线连接电脑。
  • 手机上弹出“允许 USB 调试?”时,勾选“始终允许”并确认。

电脑端测试

adb devices

成功输出

List of devices attached
XM12345678    device
  • 失败 (no permissions):说明 udev 规则未生效。解决:检查是否已重启登录,或尝试拔掉重插 USB 线。
  • 失败 (列表为空):检查数据线(是否仅充电)、USB 接口或手机是否开启调试。
  • 失败输出 (no permissions)
    • 检查是否执行了第二步
    • 尝试拔掉数据线重插。
    • 运行 sudo adb devices 测试。如果 sudo 能识别但普通用户不行,说明权限规则未生效或用户未重新登录组。

第四步:配置 Shell 环境变量 (可选)

如果你使用的是手动下载的压缩包,或者想添加自动补全功能:

编辑配置文件

nano ~/.bashrc  # 如果是 zsh 则编辑 ~/.zshrc

添加路径 (仅手动安装时需要):

export PATH=$PATH:$HOME/platform-tools

添加自动补全 (提升体验)
Android SDK 通常自带补全脚本。

# 查找补全脚本位置 (通常在 platform-tools 目录下)
# 假设在 ~/platform-tools/completion
source ~/platform-tools/completion/adb.bash

source 命令也加入 ~/.bashrc

生效

source ~/.bashrc

第五步:常用故障排查 (Linux 特有)

1. 提示adb: command not found

  • 确认已安装:which adb
  • 如果是手动安装,确认 PATH 已导出并执行了 source

2. 提示no permissions(最常见)

  • 原因:udev 规则未加载或用户组未更新。
  • 解决
    1. 检查规则文件是否存在:ls -l /etc/udev/rules.d/51-android.rules
    2. 重新加载规则:sudo udevadm trigger
    3. 彻底重启电脑(不仅仅是注销),确保用户组权限生效。
    4. 更换 USB 端口(有时前端面板供电不足或控制器不同)。

3. 手机连接后没有任何反应

  • 检查数据线是否仅支持充电。
  • 检查手机连接模式:下拉通知栏,将 USB 模式从“仅充电”改为"文件传输 (MTP)“或"PTP”。有些手机在 PTP 模式下 ADB 识别率更高。
  • 查看系统日志排查硬件识别问题:
dmesg | grep -i usb
  • 观察插入手机时的最新日志,看是否有设备被识别。

4. 多个用户或权限冲突

  • 如果你同时使用了 Snap 或 Flatpak 安装的 Android Studio,它们可能有沙盒限制,无法访问宿主的 USB 设备。建议直接使用系统包管理器安装的 adb 命令行工具。

5.???????????? no permissions

  • 原因:权限规则未加载或用户组未更新。
  • 解决
    1. 运行 ls -l /dev/bus/usb/*/* 查看设备权限,确认是否有读写权限。
    2. 重新执行 sudo usermod -aG plugdev $USER彻底重启电脑
    3. 临时测试:运行 sudo adb devices。如果 sudo 能识别,说明纯粹是权限问题。

6. 设备管理器中看不到手机,或显示QHSUSB_BULK

  • 原因:手机进入了紧急下载模式(常见于高通芯片手机刷机失败),或驱动冲突。
  • 解决
    • 如果是正常连接:尝试更换 USB 端口(优先使用主板后置 USB 2.0 接口)。
    • 如果是刷机变砖:需要安装 qpstqfil 工具进行救砖(Linux 下有开源替代工具 edl)。

7.adb devices列表为空,但手机在充电

  • 排查步骤
    1. 数据线:换一根确认能传数据的线。
    2. USB 模式:下拉手机通知栏,将 USB 模式从“仅充电”改为 “文件传输 (MTP)”“PTP”。有些手机在 PTP 模式下 ADB 兼容性更好。
    3. 系统日志:运行 dmesg -w 然后插入手机,观察是否有 USB 设备识别日志。如果没有,可能是硬件接口问题。
    4. 冲突软件:某些手机管家类软件会独占 ADB 端口,关闭它们。

8. 无线调试 (WiFi) 连接失败

  • Android 11+:支持纯无线配对。
adb pair 192.168.1.5:37829  # 输入手机显示的配对码
adb connect 192.168.1.5:5555
  • 旧版本:必须先有线连接执行 adb tcpip 5555 才能切换无线。
  • 防火墙:检查 Linux 防火墙 (ufwfirewalld) 是否拦截了 5555 端口。

第六步:无线调试 (无需 Root,无需特殊驱动)

在 Linux 上,一旦配置好有线连接,无线调试非常方便:

# 1. 有线连接状态下,开启 TCP 模式
adb tcpip 5555

# 2. 拔掉数据线,获取手机 IP (在 WiFi 设置里看,例如 192.168.1.5)
adb connect 192.168.1.5:5555

# 3. 验证
adb devices

注:Android 11+ 支持纯无线配对,无需先插线,使用 adb pair 命令即可。

现在,你的 Linux 系统已经完全配置好 ADB 环境,可以进行开发、调试或刷机操作了!

以上就是Linux系统下安装和配置ADB环境的完整步骤的详细内容,更多关于Linux安装和配置ADB环境的资料请关注脚本之家其它相关文章!

相关文章

  • linux清除端口占用方式

    linux清除端口占用方式

    这篇文章主要介绍了linux清除端口占用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-04-04
  • 详解CentOs设置静态IP的方法

    详解CentOs设置静态IP的方法

    这篇文章主要介绍了详解CentOs设置静态IP的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • Linux修改主机名命令详解

    Linux修改主机名命令详解

    在本篇文章里小编给大家整理的关于Linux修改主机名命令的知识点详解,有兴趣的朋友可以参考学习下。
    2020-02-02
  • Win8.1 + CentOS7 双系统 U盘安装(超详细教程)

    Win8.1 + CentOS7 双系统 U盘安装(超详细教程)

    这篇文章主要介绍了Win8.1 + CentOS7 双系统 U盘安装(超详细教程),非常具有实用价值,需要的朋友可以参考下。
    2017-01-01
  • Linux系统下部署项目的设置方法

    Linux系统下部署项目的设置方法

    这篇文章主要介绍了Linux系统下部署项目的教程详解,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • Apache自带的ab压力测试工具的实现

    Apache自带的ab压力测试工具的实现

    本文主要介绍了Apache自带的ab压力测试工具的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • Linux下使用ip netns命令进行网口的隔离和配置ip地址

    Linux下使用ip netns命令进行网口的隔离和配置ip地址

    这篇文章主要介绍了Linux下使用ip netns命令进行网口的隔离和配置ip地址,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Gunicorn运行与配置方法

    Gunicorn运行与配置方法

    这篇文章主要介绍了Gunicorn运行与配置方法,使用pre-fork worker模式,具有使用非常简单,轻量级的资源消耗,以及高性能等特点。对此感兴趣的朋友跟随小编一起看看吧
    2019-08-08
  • Linux(centos7)虚拟机没有IP问题及解决方案

    Linux(centos7)虚拟机没有IP问题及解决方案

    文章介绍了在CentOS 7中配置虚拟机网络并使用Xshell连接虚拟机的步骤,首先,检查并配置网卡ens33的ONBOOT属性为yes,然后重启网络服务,接着,使用Xshell新建连接,输入虚拟机的IP地址、端口号以及账户密码,完成连接并可以在Xshell上执行命令
    2025-11-11
  • 配置XManager5连接Linux图形化界面详解

    配置XManager5连接Linux图形化界面详解

    这篇文章主要介绍了配置XManager5连接Linux图形化界面详解,需要的朋友可以参考下
    2017-01-01

最新评论