服务器与大带宽专家 · 持牌IDC/CDN/ISP服务商
简米科技官网JIANMI TECH
资讯 2026-10-16 更新于 2026-10-16 简米科技 3,946 字 9 分钟阅读

Ubuntu虚拟机adb连接设备怎么配置?adb连接教程

导读在Ubuntu虚拟机里用adb连接设备,核心就是两件事:把USB设备直通给虚拟机,再让adb拥有访问权限, 只要USB能进虚拟机,udev规则配好,adb devices基本就能看到设备;如果做不到,无线调试和网络转发可以兜底,先理解Ubuntu虚拟机里adb连接的底层逻辑虚拟机USB直通是第一步Ubuntu跑……

在Ubuntu虚拟机里用adb连接设备,核心就是两件事:把USB设备直通给虚拟机,再让adb拥有访问权限。 只要USB能进虚拟机,udev规则配好,adb devices基本就能看到设备;如果做不到,无线调试和网络转发可以兜底。

先理解Ubuntu虚拟机里adb连接的底层逻辑

虚拟机USB直通是第一步

Ubuntu跑在VMware、VirtualBox或KVM里时,物理USB口默认归宿主机管理,虚拟机想识别Android手机、平板或开发板,必须把对应USB设备从宿主机“释放”给虚拟机,据USB-IF公开规范,每个USB设备都有VID和PID,Linux靠这两个编号匹配驱动和权限,adb能不能看到设备,先取决于lsusb在虚拟机里能不能列出它。

adb工具本身不复杂

据Android开发者官网,adb是Android SDK Platform-Tools里的命令行工具,负责与设备通信,Ubuntu下可装系统包,也可下载官方压缩包,推荐用官方最新版,系统仓库版本有时偏旧。

  • 安装系统包:sudo apt update && sudo apt install android-tools-adb android-tools-fastboot
  • 下载官方包:wget https://dl.google.com/android/repository/platform-tools-latest-linux.zip
  • 解压并加入PATH:unzip platform-tools-latest-linux.zip -d ~/,然后export PATH=$PATH:~/platform-tools
  • 验证:adb version

如果adb version能输出版本号,说明工具就绪,接下来才是权限和连接。

Ubuntu虚拟机adb连接设备没反应怎么办?按这四步排查

第一步:检查虚拟机USB控制器和直通状态

VMware Workstation里,打开虚拟机设置,确认USB控制器存在,兼容性选USB 3.1或3.0,插入设备后,在VMware菜单“虚拟机-可移动设备”里找到手机名称,点“连接”,VirtualBox则要在设置里启用USB控制器,并添加USB筛选器,建议安装Extension Pack。

在Ubuntu虚拟机内执行:

  • lsusb
  • dmesg | tail -n 30

如果lsusb没有Android设备,问题在直通,不在adb,VMware虚拟机USB直通adb识别不到设备时,先看宿主机是否弹出了“连接到虚拟机”的提示,没有提示就换USB线或USB口。

Ubuntu虚拟机adb连接设备怎么配置?adb连接教程

第二步:配置udev规则,解决no permissions

Linux对USB访问有权限控制,普通用户直接跑adb devices时,常见输出是no permissions或列表为空,解决方法是给Android厂商的VID加udev规则。

先查VID:

  • lsusb
  • 输出示例:Bus 001 Device 006: ID 18d1:4ee7 Google Inc.

其中18d1就是VID,创建规则文件:

  • sudo nano /etc/udev/rules.d/51-android.rules
  • 写入:SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"

如果手头有多个品牌设备,可以继续加行,小米、华为、三星、OPPO、vivo等VID不同,按lsusb结果替换即可,保存后执行:

  • sudo chmod a+r /etc/udev/rules.d/51-android.rules
  • sudo udevadm control --reload-rules
  • sudo udevadm trigger
  • sudo usermod -aG plugdev $USER

执行完usermod后需要注销并重新登录,否则组权限不生效,行业共识认为,udev规则是Linux下Android设备访问的关键,跳过这一步,后面adb命令再对也白搭。

第三步:启动adb并授权设备

设备端打开“开发者选项”,开启“USB调试”,用数据线连接虚拟机后,执行:

  • adb kill-server
  • adb start-server
  • adb devices

正常会显示:

  • List of devices attached
  • ABCDEF123456 device

如果显示unauthorized,看设备屏幕是否弹出“允许USB调试”,勾选“始终允许”并确定,如果误点了拒绝,执行:

  • adb kill-server
  • 删除~/.android/adbkey和~/.android/adbkey.pub
  • adb start-server
  • 重新插拔设备

如果显示offline,可试adb reconnect,或重启设备再连。

Ubuntu虚拟机adb连接设备怎么配置?adb连接教程

第四步:无线调试作为备用方案

Android 11及以上支持无线调试,路径:设置-开发者选项-无线调试-使用配对码配对设备,Ubuntu虚拟机与设备在同一局域网时,执行:

  • adb pair 设备IP:配对端口
  • 输入配对码
  • adb connect 设备IP:调试端口
  • adb devices

老旧设备可先用USB执行adb tcpip 5555,再adb connect 设备IP:5555,北京远程调试Android设备 adb 配置时,无线调试尤其省事,不用把设备寄来寄去,也不依赖虚拟机USB直通,Ubuntu虚拟机零成本搭建adb调试环境,指的就是这套组合:官方工具免费,无线调试也不需要额外付费。

Windows和Ubuntu虚拟机adb连接设备有什么区别?对比USB策略与网络调试

对比项 Windows宿主机/虚拟机 Ubuntu虚拟机
USB驱动 通常自动装,也可能需要厂商驱动 依赖内核和udev规则
权限模型 用户态较宽松 需plugdev组和规则文件
设备识别 设备管理器可看 lsusb、dmesg可查
无线调试 支持 支持
成本 系统授权可能收费 零成本,工具免费

业内专家指出,Windows下adb连不上的原因多在驱动签名和端口占用;Ubuntu下则集中在USB直通和权限,两者无线调试命令一致,差异主要在USB层。

VMware与VirtualBox场景下的常见坑

VMware虚拟机USB直通adb识别不到设备

  • 虚拟机设置里USB控制器未启用。
  • 宿主机VMware USB Arbitration Service未运行。
  • 设备被宿主机其他程序占用,比如手机助手、iTunes。
  • USB线仅充电,不带数据传输。

处理方式:关闭宿主机占用程序,重新插拔,在VMware右下角USB图标里手动连接,必要时把USB兼容性从2.0改成3.1。

Ubuntu虚拟机adb连接设备怎么配置?adb连接教程

VirtualBox Ubuntu adb设备列表为空

  • 未安装VirtualBox Extension Pack。
  • 未添加USB筛选器。
  • 当前用户不在vboxusers组:sudo usermod -aG vboxusers $USER,重新登录。
  • 虚拟机运行中才插入设备,筛选器未生效。

筛选器里填VID和PID最稳,比如18d1和4ee7,添加后重启虚拟机,再lsusb确认。

Ubuntu虚拟机adb连接设备的完整操作清单

  1. 虚拟机设置启用USB 3.0或3.1控制器。
  2. 插入设备,选择连接到虚拟机。
  3. lsusb确认能看到Android设备。
  4. 安装platform-tools并加入PATH。
  5. 写/etc/udev/rules.d/51-android.rules,加入VID。
  6. 重载udev规则,把用户加入plugdev组。
  7. 设备开启USB调试,弹窗授权。
  8. adb kill-server && adb start-server && adb devices。
  9. 若USB不通,改用无线调试:adb pair后adb connect。
  10. 若网络跨网段,检查桥接模式、防火墙和端口。

额外提醒:adb devices前不要同时开多个adb版本。which adb确认路径,避免系统包和platform-tools冲突,设备授权文件一般位于~/.android/,权限异常时可清理后重来。

Q&A:Ubuntu虚拟机如何配置并使用adb连接设备?

Ubuntu虚拟机adb连接设备没反应,最先查什么?

先查lsusb,虚拟机里看不到设备,就查USB直通;看得到但adb devices为空,就查udev规则、USB调试开关和授权弹窗。

为什么Ubuntu虚拟机里adb devices显示no permissions?

多数是udev规则缺失或用户不在plugdev组,按设备VID写规则,执行udevadm重载,注销重登后再试。

无线调试能否替代USB直通?

可以,Android 11及以上原生支持无线调试,同一局域网内配对连接即可,USB直通适合刷机、fastboot和需要稳定大带宽的场景,无线调试适合日常安装应用、抓日志和远程调试。

分享本文
本文为 简米科技官网 原创,已由运维技术专家审核。转载请注明来源:原文链接
售前咨询 服务热线 售后 邮箱