adb devices命令不起作用

时间:2011-04-01 07:20:25

标签: android linux ubuntu 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>>>错误:设备权限不足
  4. 我猜这些都是相关的。这是相关信息。

    $ 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:adb:command not found)通过如下符号链接来解决:

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

      这让我可以像EboMike建议并使用this solution那样做。这样做是我的Moto Droid所必需的。 (然而,对于我的Viewsonic G-Tablet,运行adb as sudo 。)

    2. 我的其他两个项目是通过实现像RivieraKid建议的udev规则解决的(来自link)。

9 个答案:

答案 0 :(得分:87)

  

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

你没有这样做的任何特殊原因?回答这个问题 - 是的! udev规则通知Ubuntu您的设备是什么,并允许用户空间工具访问它。

如果没有正确关注instructions,您将无法使用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时自动重启,但这次使用的环境正确。

答案 1 :(得分:22)

您需要以root身份重新启动adb服务器。见here

答案 2 :(得分:13)

在我的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 -group。

答案 3 :(得分:3)

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

查看udevmonitor --env的输出,然后输出

是有益的
udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>

答案 4 :(得分:2)

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

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

答案 5 :(得分:2)

以root身份重新启动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

答案 6 :(得分:1)

我通过覆盖系统规则修复了我的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/

答案 7 :(得分:0)

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

解决方案:在手机上关闭网络连接。

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

答案 8 :(得分:-3)

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