【问题标题】:Android 6.0 device not recognized by adb on Linux after reboot重启后 Linux 上的 adb 无法识别 Android 6.0 设备
【发布时间】:2016-05-17 07:46:44
【问题描述】:

在搭载 Android 6.0 的三星 Galaxy S6 Edge 中,当设备重新启动时,手机会抱怨连接的计算机无法识别手机,并且无法从连接的 Linux PC 通过 ADB 访问该设备。手机实际上会指示用户安装适用于 Windows 或 Mac OS 的驱动程序,但由于手机连接到 Linux 主机,因此这里没有任何帮助。

这意味着,为了继续通过 ADB 进行调试,必须手动将手机的 USB 模式从 MTP 切换到 PTP,然后再次通过 ADB 连接手机。这使得测试自动化变得不可能,因为测试调度程序需要在测试轮次之间重新启动目标设备。

在以前的 Android 版本中,远程重启设备并恢复 ADB 连接是可能的,但在 Android 6.0 中,这成为了一个问题。此特定设备具有较早的 Android 5.1,并且远程重启没有问题。

由于手动切换 USB 模式可以解决问题,如果此模式可以在重启后自动切换,它可能会有所帮助。到目前为止,我看到的只有解决方案需要设备生根,这是毫无疑问的。

有人知道,Android 6.0 设备如何在重启后被 ADB 自动识别?

【问题讨论】:

  • 我从三星那里问了这个问题,他们的回答是,他们无能为力,因为问题出在 Android 上。

标签: linux adb android-6.0-marshmallow


【解决方案1】:

解决方案毕竟很简单:需要将启动 adb 服务器的 Linux 用户添加到“plugdev”组。该组在文件 /etc/udev/rules.d/51-android.rules 中定义,行:

SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev"  

对于以前的 Android 版本,这似乎并不重要,因为我们在该组中没有任何用户并且一切正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多