Linux adb使用及no permissions问题解决

本文介绍如何在Ubuntu Server 16.04环境下安装ADB并解决连接Android设备时出现的nopermissions问题。通过编辑udev规则文件,设置正确的设备ID和权限,实现设备正常连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux下adb的使用及adb devices : no permissions问题的解决

最近在Android开发过程中,需要用到linux下的开发环境,而使用adb时候遇到点小问题,特此笔记记录一下,方便自已,亦希望有助于他人。

1、adb的安装

本人的Linux开发环境为Ubuntu Server 16.04,有使用其他平台,如CentOS等,可灵活变通。

# 安装adb
sudo apt install adb
sudo apt install android-tools-adb

2 、no permissions

安装好adb工具之后,连接安卓设备,并开启usb调试,使用adb devices发现显示出来的竟然是?????? no permissions

在网上查看到有相关解决方案1

  • 首先,在未连接Android设备的情况下,查看一下Linux下的usb,类似如下

    
    # 运行lsusb命令
    
    lsusb
    
    # 结果
    
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
    Bus 001 Device 005: ID 0cf3:e005 Atheros Communications, Inc.
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  • 然后,打开android设备的usb调试模式,连接到Linux电脑上,运行

    
    # 运行lsusb指令,查看设备信息
    
    lsusb
    
    # 显示结果如下
    
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 003: ID 0bda:0129 Realtek Semiconductor Corp. RTS5129 Card Reader Controller
    Bus 001 Device 005: ID 0cf3:e005 Atheros Communications, Inc.
    Bus 001 Device 019: ID 2207:0010   # 此条新增的条目,则是新连接的android设备
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    如上则可以查看到新连接的Android设备信息,注意其ID号,这里是22070010

  • 然后cd /etc/udev/rules.d/目录下,查看.rules文件

    cd /etc/udev/rules.d/
    ls
    
    # 结果如下,名称可能不同
    
    51-android.rules
    
    # 然后编辑该文件
    
    sudo vim 51-android.rules
    
    # 然后加入如下代码
    
    SUBSYSTEM=="usb",ATTRS{idVendor}=="2207",ATTRS{idProduct}=="0010",MODE="0666"

    这里22070010则分别是上一步中查看到的android设备的额ID信息,MODE应该是表示权限。

  • 重启设备

    sudo chmod a+rx /etc/udev/rules.d/51-android.rules
    sudo service udev restart

至此,拔掉usb重新连接,然后在运行如下命令,便可进行adb操作

sudo adb kill-server
sudo adb start-server
sudo devices
# 若要需要root权限进入Android设备的shell,可以运行
adb root
adb remount
adb shell
adb devices为空

若是运行adb devices列表为空,而lsusb却能看到已经连接的Android设备,此时可以

# 编辑adb_usb.ini文件
sudo vim ~/.android/adb_usb.ini
# 加入 0x0bb4 然后执行
sudo service udev restart
android update adb

参考文章:

<think>嗯,用户问的是如何在Linux系统中配置和使用ADB工具。首先,我需要回忆一下关于ADBLinux下的安装步骤。根据引用[1],在大多数Linux发行版如Ubuntu和Debian中,可以直接用包管理器安装ADB。所以应该建议用户使用sudo apt install adb命令。不过可能还需要添加一些步骤,比如确认包名称是否正确,因为有时候包名可能不是adb而是android-tools-adb。 接下来是配置udev规则,这部分引用[4]提到需要修改/etc/udev/rules.d/70-android.rules文件,并设置权限。用户可能需要获取设备的vendor ID,可以通过lsusb命令查看连接的设备。然后添加对应的规则,确保普通用户也能访问设备。这一步很重要,否则用户可能需要每次都用sudo来运行adb命令。 然后是使用ADB的基本命令,比如adb devices查看设备是否被识别。如果设备未授权,可能需要检查USB调试模式是否开启。引用[2]提到在两个Linux设备通过USB连接时,如何在A设备上使用adb shell访问B设备,这可能涉及到设备间的通信设置,但用户的问题可能更基础,先解决单设备连接的问题。 常见问题方面,如果adb devices找不到设备,可能需要检查USB连接、udev规则是否正确,或者重新启动adb服务。引用[3]解释了adb的架构,client、server和daemon的关系,如果出现问题,可能需要杀死server再重新启动。另外,权限问题也是常见的,特别是udev规则配置错误的话。 用户可能需要的问题包括安装后的验证步骤,如何调试连接问题,或者高级用法如无线调试。不过根据用户当前的问题,主要集中在配置和使用,所以相关问题可以涉及安装方法、设备连接失败处理、无线连接配置,以及多设备管理。 需要确保步骤清晰,分点说明,同时引用正确的参考文献。例如,安装步骤引用[1],配置udev引用[4],基本命令引用[2]和[3]。可能还需要提醒用户不同发行版的差异,比如基于Arch的系统使用pacman安装。 最后,确保回答结构清晰,逐步引导用户完成安装、配置、使用,以及常见问题解决,这样用户能一步步操作,避免遗漏关键步骤。</think>### Linux环境下ADB工具的配置与使用指南 #### 一、ADB安装方法 1. **通过包管理器安装** 在基于Debian/Ubuntu的系统中,执行以下命令: ```bash sudo apt update sudo apt install android-tools-adb ``` 对于Arch Linux系统: ```bash sudo pacman -S android-tools ``` [^1] 2. **手动安装ADB工具包** 若包管理器不可用,可从Android官网下载[Platform-Tools](https://developer.android.com/studio/releases/platform-tools)并解压: ```bash unzip platform-tools-latest-linux.zip sudo cp -r platform-tools /usr/local/ export PATH=$PATH:/usr/local/platform-tools ``` [^4] --- #### 二、设备连接配置 1. **配置USB调试权限** 创建udev规则文件: ```bash sudo nano /etc/udev/rules.d/51-android.rules ``` 添加以下内容(替换`0bb4`为设备VendorID): ```bash SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev" ``` 刷新规则并重启服务: ```bash sudo udevadm control --reload sudo service udev restart ``` --- #### 三、ADB基础操作 1. **设备连接验证** ```bash adb devices ``` 成功连接显示类似: ``` List of devices attached ABCDEF123456 device ``` 2. **常用指令示例** - 安装APK文件:`adb install app.apk` - 进入设备Shell:`adb shell` - 文件传输: ```bash adb push local_file /sdcard/ adb pull /sdcard/remote_file . ``` [^3] --- #### 四、进阶功能配置 1. **无线调试模式** ```bash adb tcpip 5555 adb connect 192.168.1.100:5555 ``` 2. **多设备管理** 指定设备执行命令: ```bash adb -s ABCDEF123456 shell ``` --- #### 五、常见问题解决 | 问题现象 | 解决方案 | |---------|----------| | `no permissions`错误 | 检查udev规则配置,执行`sudo chmod a+rx /etc/udev/rules.d/51-android.rules`[^4] | | 设备未显示 | 重启ADB服务:`adb kill-server && adb start-server` | | 无线连接超时 | 确保设备与PC在同一局域网,防火墙开放5555端口 | ---
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值