【问题标题】:adb devices command not workingadb 设备命令不起作用
【发布时间】:2011-07-27 11:40:56
【问题描述】:

我正在运行 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 的 root Moto Droid 和运行基于 CM7 的 ROM 的 root G-Tab 得到相同的结果。

我查看了以下相关帖子:

我尝试了大部分(不是全部)建议,但未能解决我的问题。我没有尝试的事情似乎不合适。如果您再提供一些提示,我将不胜感激,我会继续排除故障。

我没有尝试的一件事是编辑 /etc/udev/rules.d/70-android.rules。这可能是问题吗?我看不出这将如何导致“sudo:adb:找不到命令”。也许我的问题并不全相关。无论如何,在这一点上,我认为我需要其他人的一些意见,因为我不相信我有路径问题或其他帖子中讨论的其他常见问题。

编辑:已解决感谢 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,不需要以 sudo 运行 adb。)

  2. 按照 RivieraKid 的建议(来自 link),通过实施 udev 规则解决了我的其他两项问题。

【问题讨论】:

标签: android linux ubuntu adb


【解决方案1】:

我没有尝试过的一件事是编辑 /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 时会自动重启,但这次使用正确的环境。

【讨论】:

  • 感谢您的link。不知道我是如何错过这些指示是官方的这一事实。我认为人们这样做是为了解决问题。我找到了 Viewsonic GTablet 的供应商代码并添加了 udev 规则,现在它可以工作了!谢谢。
  • 由于某种原因,我无法让摩托罗拉 Droid 与 adb 设备一起显示。现在我可以让 GTab 和一个模拟器显示出来,但不能显示 Droid。
  • 见上文。以 root 身份运行 adb 会导致 Moto Droid 出现。
  • $ cat /etc/udev/rules.d/51-android.rules SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666" SUBSYSTEM==" usb", SYSFS{idVendor}=="0955", MODE="0666"
  • ...如果之前运行过adb 守护程序,您需要重新启动它。
【解决方案2】:

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

【讨论】:

  • 没用。详情: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
  • adb 不在您的超级用户的路径中。输入 which adb 找出它所在的路径,然后将其添加到 root 的路径中。
  • 希望你能读到这篇文章。 (我不知道如何格式化 cmets 以包含换行符。) adb IS 在我的 root 用户的路径中。我在原始帖子中粘贴了 which 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
  • 这是一件奇怪的事情。我从“which adb”得到不同的结果,具体取决于我是以 root 身份运行它还是使用 sudo 运行它。这是输出 $ sudo which adb $
  • 指定完整路径,然后在以 root 身份运行 adb 时。
【解决方案3】:

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

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

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

对我来说,帮助来自 Google 的 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-组。

【讨论】:

    【解决方案4】:

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

    看看 udevmonitor --env 的输出,后面跟着

    udevinfo -a -p <DEVICE_PATH_AS_REPORTED_BY-udevmonitor>
    

    【讨论】:

    • 如果您的机器上不存在udevmonitorudevinfo,请改用udevadm monitorudevadm info -a -p ...
    【解决方案5】:

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

    在您让 IDE 自行终止服务器之前,即使手动终止服务器并使用 sudo 运行新实例也无济于事。

    【讨论】:

      【解决方案6】:

      以 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
      

      【讨论】:

      • 我也是:Linux Mint Serena 18.1 与 HTC Sensation。新手警报:我已经玩了 2 天了,所以这些东西几乎可以肯定是 snafu'd
      【解决方案7】:

      我通过这种方式覆盖系统规则,在我的 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/

      【讨论】:

      【解决方案8】:

      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
      

      【讨论】:

        【解决方案9】:

        我刚遇到同样的情况,恢复出厂设置对我来说效果很好。

        【讨论】:

        • 这肯定是评论吗?
        • 我的错。我想说重置设备和清理数据对我来说效果很好。
        猜你喜欢
        • 2011-09-19
        • 1970-01-01
        • 1970-01-01
        • 2014-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-03
        相关资源
        最近更新 更多