EN

Android:Ubuntu 下执行 Adb 命令找不到设备

字数统计: 1.2k阅读时长: 4 min
2014/03/25
loading

这篇写于 2014 年,当时用的是 Nokia X 和旧版 Android SDK。2026-10-13 更新了 Ubuntu 24.04 LTS 下的 udev 和用户组配置;旧 SYSFS 规则、Upstart 重启方式已经不适用,adb_usb.ini 的办法留在文末作历史记录。

1.问题概述

最近开发Nokia项目,遇到的问题如下:

插入Nokia x后,电脑没有反应,即不识别,同事的windows也不识别,最后在谷歌上搜索了良久,才找到了解决方案,但是没有记录,后来又要给别人配置的时候,发现忘记怎么配置了。想想这也是一个具有通性的问题,还是记录下来,分享给大家。

2.问题解决方案

先在设备上开启 USB 调试,并使用支持数据传输的 USB 线。用 adb version 确认调用的 Platform-Tools 版本,再运行 adb devices -l 查看设备状态。

  • 列表为空:检查线缆、接口、USB 调试开关,以及主机是否枚举到设备。
  • no permissions:优先检查 Linux 的 udev 规则和当前用户组。
  • unauthorized:设备已经被发现,解锁设备并确认 RSA 调试授权弹窗。
  • offline:设备未正常响应 ADB;重新插拔或重启 ADB 后再观察。

USB 枚举、主机访问权限和设备授权是不同环节。具体连接与状态说明参见 ADB 文档和设备连接指南。

2.1.运行 lsusb

运行 lsusb,找到插拔设备前后新增的条目。当年的 Nokia X 输出如下,其他设备应使用自己实际读到的 ID:

1
Bus 003 Device 033: ID 0421:06e8 Nokia Mobile Phones

0421 是 vendor ID,06e8 是 product ID;两者都不是 Linux 文件权限。lsusb 能看到设备,也不代表 ADB 接口已经授权。

2.2.配置 udev 规则和用户组

Ubuntu 优先安装发行版提供的规则。以下命令来自 Android 官方的 Ubuntu 配置方法;Ubuntu 24.04 的对应软件包位于 universe 仓库:

1
2
sudo apt-get install android-sdk-platform-tools-common
sudo usermod -aG plugdev "$USER"

用户组变更后注销并重新登录,用 id 确认当前会话包含 plugdev,然后重新插拔设备。这一步安装的是公共文件和 USB 规则,ADB 二进制仍应使用所选 Android SDK 的 Platform-Tools。

只有发行版规则没有覆盖设备时,才需要为它添加规则。例如,在 /etc/udev/rules.d/51-android-local.rules 中为上面的 Nokia X 写入:

1
SUBSYSTEM=="usb", ATTR{idVendor}=="0421", ATTR{idProduct}=="06e8", MODE="0660", GROUP="plugdev"

ATTR{} 匹配设备属性,MODE 设置设备节点权限,GROUP 指定可访问的用户组。这里限制为 root 和 plugdev 组读写;规则文件本身不需要执行权限。编辑后重新加载规则,再拔插设备:

1
2
sudo chmod 0644 /etc/udev/rules.d/51-android-local.rules
sudo udevadm control --reload-rules

重载规则不会自动改变已经存在的设备节点,重新插拔后新规则才参与设备事件处理。规则语法和重载行为参见 systemd 的 udev 与 udevadm 文档。

2.3.用普通用户重启 ADB

确认命令指向同一套 Platform-Tools,再用当前普通用户重启 ADB server:

1
2
3
adb kill-server
adb start-server
adb devices -l

常规开发不需要用 sudo adb start-server 绕过 USB 权限。若之前已经以 root 启动了 server,应先停止那个进程,再回到普通用户;同时检查 SDK 路径,避免终端和 Android Studio 各自调用不同版本。此操作会中断当前 ADB 连接。

2.4.旧版 adb_usb.ini 记录

我手上那台 Nokia X 当时还没完:按当时的常规办法配置后,仍然识别不到,还要在旧 SDK 的 ~/.android/adb_usb.ini 里登记厂商 ID。下面留着当年的记录,前面的 Ubuntu 24.04 配置不需要照抄这一步:

1
2
# Historical Nokia X vendor entry for the old Android SDK.
0x0421

当前设备先按官方的 USB 调试、udev 和授权流程排查。Windows 的 ADB USB 驱动配置与 Linux 不同,应参考 OEM USB 驱动安装说明,不能直接套用这里的 udev 规则。

关于我 && 博客

下面是个人的介绍和相关的链接,期望与同行的各位多多交流,三人行,则必有我师!

  1. 博主个人介绍 :里面有个人的微信和微信群链接。
  2. 本博客内容导航 :个人博客内容的一个导航。
  3. 个人整理和搜集的优秀博客文章 - Android 性能优化必知必会 :欢迎大家自荐和推荐 (微信私聊即可)
  4. Android性能优化知识星球:付费社群已于 2026 年停止运营,不再招收新成员;此处保留历史介绍。

一个人可以走的更快 , 一群人可以走的更远

微信扫一扫

CATALOG
  1. 1. 1.问题概述
  2. 2. 2.问题解决方案
    1. 2.1. 2.1.运行 lsusb
    2. 2.2. 2.2.配置 udev 规则和用户组
    3. 2.3. 2.3.用普通用户重启 ADB
    4. 2.4. 2.4.旧版 adb_usb.ini 记录
  • 关于我 && 博客