【问题标题】:How do I set up udev rules for debugging a physical android device with Android Studio?如何设置 udev 规则以使用 Android Studio 调试物理 android 设备?
【发布时间】:2017-05-04 00:21:20
【问题描述】:

过去我从来不需要设置这个,但我今天将 Android Studio 更新到了 2.3.1 版本,点击调试时出现了这个错误:

05/03 17:19:19: Launching app
$ adb push app-debug.apk {path on my computer}
com.android.ddmlib.AdbCommandRejectedException: insufficient permissions for device: verify udev rules.
See [http://developer.android.com/tools/device.html] for more information.
Error while Installing APK

我去了他们指定的页面,他们告诉我制作文件/etc/udev/rules.d/51-android.rules

所以我做了,添加了这一行:

SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", MODE="0666", GROUP="plugdev"

对于我的(华为)Nexus 6P。

我还将debug 部分添加到build.grade,正如他们指定的那样。

但是,我仍然遇到同样的错误。我尝试用我自己的 linux 用户组代替 plugdev,但这也没有解决问题。有什么建议么?

【问题讨论】:

    标签: android android-studio huawei-mobile-services


    【解决方案1】:

    请注意,它可能会报告不同的 ID,具体取决于设备的当前 USB 模式。

    因此重要的是启用USB调试首先 ...

    然后然后使用lsusb来获取供应商和产品ID ...

    Bus 001 Device 070: ID 18d1:4ee7 Google Inc.
    

    罪魁祸首可能是供应商 ID,其中12d1 是华为,18d1 是 Google。

    ...无论lsusb 输出到udev 规则:

    # angler (Nexus 6P)
    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4ee7", MODE="0600", OWNER="yourusername"
    

    然后运行:

    sudo udevadm control --reload-rules
    

    【讨论】:

      【解决方案2】:

      您可能没有添加正确的ATTR{idVendor} 属性。为此,请执行以下操作:

      $ sudo adb devices
      List of devices attached
      adb server is out of date.  killing...
      * daemon started successfully *
      XXXXyyyy    device
      
      1. 运行adb devices 后,您将看到上面的输出。

      2. 复制device 输出的前4 个字节(即XXXX)。将/etc/udev/rules.d/51-android.rules中的ATTR{idVendor}=="XXXX"替换为udev,然后重启udev

      正如下面的评论所指出的,上述方法可能行不通;另一种选择是使用lsusb 或tail dmesg

      【讨论】:

      • 这并不总是有效。 adb 中的 XXXXyyyy 可能不是设备 ID。使用 dmesg 找出设备 ID 并将其添加到您的规则中。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-04-19
      • 1970-01-01
      • 2020-09-18
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      相关资源
      最近更新 更多