Ubuntu下使用adb及没有权限问题的处理
在Ubuntu下使用adb一直以来都没有出现什么问题,上午由于调试需要在Ubuntu环境下使用adb却提示:???????????? no permissions.
这个问题之前也出现过,但已经处理过,以为是升级SDK造成的,重新设置了下adb,,发现问题依旧;不过最后还是发现了问题的原因;决定还是把这种基本的使用问题写到这里,大家如果遇到可以参考。
首先,ubuntu下正常配置adb的过程如下:
<<我们的是展讯平台,其他平台可以参考,基本原理是一样的>>
一、如何使用 adb
1. 安装 adb
1.1 安装 adb,下载代码编译完成后,会在编译过的项目目录下./out/host/linux-x86/bin/生成adb文件,需要拷贝
到/usr/bin目录下,并更改权限。在终端运行 adb help,查看adb是否安装成功。
命令:
sudo cp /home/apuser/code/out/host/linux-x86/bin/adb /usr/bin
sudo chmod a+x /usr/bin/adb
adb help说明:这个adb文件也可以在android-sdk-linux下的platform-tools目录下找到。
2. 创建spreadtrum usb 专有 VID
命令: [ -d ~/.android ] || mkdir ~/.android; echo 0x1782 > ~/.android/adb_usb.ini可以查看/home/apuser/.android/adb_usb.ini是否生成成功,且内容为 0x1782
3. 执行 sudo adb shell,看能否连接上手机,我是执行失败了。
错误码error:
insufficient permissions for device
执行 sudo adb devices,查看是否能列出设备,如果失败,错误码为:
List of devices attached
???????????? no permissions
4. 如果发生 3 中的错误,则需要添加列表
到:/etc/udev/rules.d/51-android.rules命令:
cd /etc/udev/rules.d
sudo vim /etc/udev/rules.d/51-android.rules添加 SUBSYSTEM=="usb", SYSFS{idVendor}=="1782", MODE="0666"
其中 1782 为展讯设备号,也可以通过 lsusb 来查看所有 usb 设备。
说明:展讯的设备号是1782,其他平台的可查找确认后,填写到这里。
apuser@changdousunubt:~$ lsusb
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 026: ID 1782:5d04 Spreadtrum Communications Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub5. 到此为止, adb 可以使用。
可以shell登录手机,也可以出 log, logcate 具体命令还需要学习。
二、adb devices 没有权限问题处理
$ adb devices
List of devices attached
???????????? no permissions根本原因是:adb server需要以root的权限启动出现这个问题,首先可根本文第一中出现该问题时的处理方法检查一遍。如果仍然出现该问题那么进行下面的检查和操作。
1.重启udev
sudo /etc/init.d/udev restart 2.到android-sdk-linux目录下adb所在的目录
adb kill-server
sudo ./adb kill-server说明:在sdk的adb所在目录下执行adb 命令时一定要加./adb; 如果你的adb已经在环境变量中,则可以不加。
3.使用sudo启动adb server
这一步一定要在在 Android sdk 的 adb所在的目录下运行 (这一步很重要,必须要sudo,否则没效果)
sudo ./adb start-server4.使用命令adb devices,检测
5.使用
sudo ./adb devices
这一步一定要在在 Android sdk 的 adb所在的目录下运行 (必须要sudo,否则没效果)此外如果要进入adb shell可使用 sudo ./adb shell命令
总结:
今天出现这个没有权限的问题,原因是之前编译linphone-android项目时,将android-sdk-linux添加到了环境变量中,启动系统之后,使用的adb命令使系统调用android-sdk-linux下的adb,当然它没有超级权限了。
-------------------
备注:
如果还是找不到设备,继续:
#which adb
#cd adb_path //进入adb的路径下
#sudo su
#./adb kill-server
#./adb start-server
#./adb devices

本文介绍了在Ubuntu系统中配置ADB并解决ADB无权限问题的方法。包括安装ADB、创建专有VID、添加udev规则等步骤,并针对ADB无权限问题提供了解决方案。
1001

被折叠的 条评论
为什么被折叠?



