Linux adb使用及no permissions问题解决

Linux adb使用及no permissions问题解决

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号,这里是2207和0010

然后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”

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

重启设备

sudo chmod a+rx /etc/udev/rules.d/51-android.rules
sudo service udev restart
1
2
至此,拔掉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端口 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值