2011-04-01 81 views
85

我正在运行Ubuntu 10.10 64位。我安装了ia32-libs以及Android Debug Bridge版本1.0.26。adb设备命令不起作用

我的问题(S):

  1. adb devices >>> ????????????没有权限
  2. sudo adb devices >>>>须藤:亚行:找不到命令
  3. adb shell >>>错误:设备

权限不足,我想这些都是相关的。这是相关的信息。

$ echo $PATH 
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools 

$ which adb 
/opt/android-sdk-linux_x86/platform-tools/adb 

$ adb devices 
* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 
List of devices attached 
???????????? no permissions 

$ sudo adb devices 
sudo: adb: command not found 

$ adb shell 
error: insufficient permissions for device 

运行CM6.1的根源化Moto Droid和运行基于CM7的ROM的根G-Tab的结果相同。

我已经审议了以下相关文章:

我想大部分(不是全部)的建议,我一直没能解决我的问题。我没有尝试的东西似乎不合适。我希望提供更多的提示,我会继续解决问题。

我没有试过的一件事是编辑/etc/udev/rules.d/70-android.rules。这可能是问题吗?我看不到这会导致“sudo:adb:command not found”。也许我的问题并不都是相关的。无论如何,在这一点上,我想我需要一些其他人的意见,因为我不认为我有其他职位讨论的路径问题或其他常见问题。

编辑:已解决感谢EboMike和RivieraKid。这实际上是两个不同的问题:

  1. 上述项#2(须藤:亚行:找不到命令)是通过使一个符号链接解决如下:

    $ sudo ln -s /opt/android-sdk-linux_x86/platform-tools/adb /usr/local/sbin/adb 
    

    ,让我那么做的EboMike建议并使用this solution。这是我的Moto Droid所必需的。 (ADB运行作为须藤是需要我的优派G-平板电脑,但是。)

  2. 我的另外两个项目是通过实现udev规则解析为RivieraKid建议(从这个link)。

+0

[Ubuntu的:Android设备调试]的可能重复(http://stackoverflow.com/questions/3127539/ubuntu-android-device-debug) – EboMike 2011-04-01 07:28:54

+0

项目#1真的帮了我。不清楚项目#2 – Francisco 2013-04-05 20:08:48

+0

[设置开发设备(??????无权限)]的可能重复](https://stackoverflow.com/questions/9210152/set-up-device-for-development-没有权限) – 2017-10-21 21:16:36

回答

87

One thing I didn't try was editing /etc/udev/rules.d/70-android.rules. Is that likely to be the issue?

为什么你不这样做的任何特定原因?回答这个问题 - 是的! udev规则是告诉Ubuntu你的设备是什么,并允许用户空间工具访问它。

您将无法使用ADB没有正确遵循了instructions

考虑到这一点。然而,你不说你使用的是什么版本的Ubuntu的,但我曾与10.10的问题 - 让我知道如果你需要我后我的规则文件的内容。

不要担心通过sudo运行ADB,你不需要它。来自udev规则的MODE="0666"允许您以任何用户身份访问设备。


编辑:

不要忘记重新加载规则:

sudo udevadm control --reload-rules 

编辑#2:

由于@Jesse格里克正确地指出,如果亚行已经运行在守护进程模式,您还需要重新启动这个工作:

sudo adb kill-server 

我在这里使用了sudo,因为这样可以保证adb将被杀死,并且这是官方支持的停止服务器的方法。它会在下次使用adb时自动重新启动,但是这次使用的是正确的环境。

+1

谢谢你的[链接](http://developer.android.com/guide/developing/device.html)。不知道我错过了这些指示是否正式的事实。我认为人们是在做一个解决方案。我找到了我的Viewsonic GTablet的供应商代码并添加了udev规则,现在它可以工作了!谢谢。 – MountainX 2011-04-01 08:40:01

+1

由于某些原因,我无法让摩托罗拉Droid显示adb设备。现在我可以得到GTab和一个模拟器来显示,但不是Droid。 – MountainX 2011-04-01 08:43:03

+0

见上文。以root身份运行adb导致Moto Droid显示。 – MountainX 2011-04-01 08:46:43

22

您需要以超级用户身份重新启动adb服务器。见here

+0

没有工作。详细信息: 'me @ desktop:/ opt/android-sdk-linux_x86/platform-tools $ sudo adb kill-server sudo:adb:command not found me @ desktop:/ opt/android-sdk-linux_x86/platform -tools $ adb kill-server me @ desktop:/ opt/android-sdk-linux_x86/platform-tools $ sudo adb start-server sudo:adb:command not found' – MountainX 2011-04-01 07:37:03

+0

'adb'不在您的路径中超级用户。输入'which adb'来找出它所在的路径,然后将其添加到根路径。 – EboMike 2011-04-01 07:48:11

+0

希望你能阅读这个。 (我不知道如何格式化注释以包含换行符。)adb IS位于我的根用户的路径中。我在原始帖子中粘贴了哪个adb命令。路径是/ opt/android-sdk-linux_x86/platform-tools/adb。 $ sudo -s root @ desktop:#echo $ PATH /usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ usr/X11R6/bin :/ opt/android-sdk-linux_x86/tools:/ opt/android-sdk-linux_x86/platform-tools – MountainX 2011-04-01 08:00:32

1

我通过overiding系统固定我的Debian GNU/Linux系统在这个问题上的规则,方式:

mv /etc/udev/rules.d/51-android.rules /etc/udev/rules.d/99-android.rules 

我使用的文件的链接内容: http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/

+0

链接不工作! – user13107 2014-03-26 02:27:18

+0

http://rootzwiki.com/topic/258-udev-rules-for-any-device-no-more-starting-adb-with-sudo/ – RzR 2014-03-29 19:50:10

13

在我的Gentoo/Funtoo Linux系统我有类似的问题:

我gotting总是不正确的设备说明和足够的权限:

# sudo ./adb devices 
List of devices attached 
???????????? no permissions 
# ./adb usb 
error: insufficient permissions for device 

对我来说,有助于从谷歌howto。 在我来说,我需要添加udev规则:

# cat /etc/udev/rules.d/51-android.rules 
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev" 

和设置文件系统权限

# chmod a+r /etc/udev/rules.d/51-android.rules 

重新插入我的智能手机访问手机后是成功的,但现在也出现在Eclipse中“Android设备选配:

# sudo ./adb devices 
List of devices attached 
3XXXXXXXXXXXXXC device 
# sudo ./adb usb 
restarting in USB mode 

您还必须检查你的用户的成员到plugdev -group。

2

请注意IDEs IntelliJ IDEA往往会启动自己的adb服务器。

即使手动查杀服务器和运行使用sudo不会在这里帮助一个新的实例,直到你让你的IDE杀死服务器本身。

3

我读过的每个答案都表示SUBSYSTEM=="usb"。但是,我的(也许是古代的)udev需要将其更改为DRIVER=="usb"。最后,我可以以非root用户身份运行adb服务器... yay。

它可以启发看udevmonitor --env的输出,随后

udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor> 
+0

如果你的机器上不存在'udevmonitor'和'udevinfo' ,请改用'udevadm monitor'和'udevadm info -a -p ...'。 – Josh 2017-04-23 12:16:20

0

的HTC One M7运行新鲜的CyanogenMod 11

电话连接USB和圈养我的输出数据连接。

然后我得到这个惊喜:

[email protected]:~/temp/htc_m7/2015-11-11$ adb shell 
error: insufficient permissions for device 

[email protected]:~/temp/htc_m7/2015-11-11$ adb devices 
List of devices attached 
???????????? no permissions 

解决方法:打开手机圈养OFF。

[email protected]:~/temp/htc_m7/2015-11-11$ adb devices 
List of devices attached 
HT36AW908858 device 
-3

我刚刚得到了同样的情况,工厂数据重置对我很好。

+0

当然这是一条评论? – 2016-07-26 12:28:47

+0

我的不好。我想说,重置设备和清理数据对我来说工作得很好。 – 2016-07-26 14:15:07

2

以root用户身份重新启动adb服务器。见:

[email protected]:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.zip 
loading: 'angler-ota-mtc20f-5a1e93e9.zip' 
error: insufficient permissions for device 
[email protected]:~/Downloads$ adb devices 
List of devices attached 
XXXXXXXXXXXXXXXX no permissions 

[email protected]:~/Downloads$ adb kill-server 
[email protected]:~/Downloads$ sudo adb start-server 
* daemon not running. starting it now on port 5037 * 
* daemon started successfully * 
[email protected]:~/Downloads$ adb devices 
List of devices attached 
XXXXXXXXXXXXXXXX sideload