adb设备命令不起作用

我正在运行Ubuntu 10.10 64位。 我已经安装了ia32-libs和Android Debug Bridge版本1.0.26。

我的问题:

  1. adb devices >>> ???????????? 没有权限
  2. sudo adb devices >>>> sudo:adb:command not found
  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获得了相同的结果。

我已阅读了以下相关的post:

  • http://forum.xda-developers.com/archive/index.php/t-522827.html
  • http://ubuntuforums.org/archive/index.php/t-1164359.html
  • 在linux环境下找不到adb命令

我尝试了大部分(不是全部)的build议,但是我一直无法解决我的问题。 我没有尝试的东西似乎不合适。 我将不胜感激一些技巧,我会继续排除故障。

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

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

  1. 上面的项目2(sudo:adb:command not found)通过如下的符号链接来解决:

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

    这让我做EboMikebuild议并使用这个解决scheme 。 这是我的Moto Droid所必需的。 (然而,我的Viewsonic G-Tablet不需要使用sudo作为sudo。)

  2. 我的其他两个项目通过像RivieraKidbuild议的那样通过实施udev规则来解决(从这个链接 )。

有一件事我没有尝试编辑/etc/udev/rules.d/70-android.rules。 这可能是问题吗?

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

如果没有正确地按照说明操作,您将无法使用adb。

但是,考虑到这一点,你不会说你使用的是什么版本的Ubuntu,但是我在10.10时遇到了问题 – 如果你需要我发布规则文件的内容,请告诉我。

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


编辑:

不要忘记重新加载规则:

 sudo udevadm control --reload-rules 

编辑#2:

正如@Jesse Glick正确地指出的那样,如果adb已经在守护进程模式下运行,那么你也需要重新启动它才能工作:

 sudo adb kill-server 

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

您需要以root身份重新启动adb服务器。 看到这里 。

在我的Gentoo / Funtoo Linux系统上,我遇到了类似的问题:

我总是没有正确的设备描述和权限不足:

 # 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组。

我读过的每个答案都表示SUBSYSTEM=="usb" 。 但是,我的(也许古代)udev需要这个改变为DRIVER=="usb" 。 最后,我可以运行adb服务器作为非root用户…好吧。

看看udevmonitor –env的输出,然后输出

 udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor> 

请注意,像IntelliJ IDEA这样的IDE往往会启动自己的adb-server。

即使手动杀死服务器并使用sudo运行新实例也不会有帮助,除非您让IDE自己终止服务器。

重新启动adb服务器作为根为我工作。 看到:

 derek@zoe:~/Downloads$ adb sideload angler-ota-mtc20f-5a1e93e9.zip loading: 'angler-ota-mtc20f-5a1e93e9.zip' error: insufficient permissions for device derek@zoe:~/Downloads$ adb devices List of devices attached XXXXXXXXXXXXXXXX no permissions derek@zoe:~/Downloads$ adb kill-server derek@zoe:~/Downloads$ sudo adb start-server * daemon not running. starting it now on port 5037 * * daemon started successfully * derek@zoe:~/Downloads$ adb devices List of devices attached XXXXXXXXXXXXXXXX sideload 

我通过这样的系统规则解决了我的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/

HTC One m7运行新鲜Cyanogenmod 11。

手机连接USB,并连接我的数据连接。

然后我得到这个惊喜:

 cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb shell error: insufficient permissions for device cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices List of devices attached ???????????? no permissions 

解决scheme:在手机上closurestethering。

 cinder@ultrabook:~/temp/htc_m7/2015-11-11$ adb devices List of devices attached HT36AW908858 device 

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