Ubuntu下使用adb及没有权限问题的处理

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

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 hub



5. 到此为止, 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-server

4.使用命令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



评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JerryHe

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值