在使用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模式可以解决问题,如果此模式可以在重启后自动切换,则可能会有所帮助。到目前为止,只有我见过的解决方案需要设备生根,这是不可能的。
有人有任何想法,重启后ADB如何自动识别Android 6.0设备?
答案 0 :(得分:0)
解决方案毕竟很简单:启动adb服务器的Linux用户需要添加到" plugdev"组。该组在文件/etc/udev/rules.d/51-android.rules中定义为行:
SUBSYSTEM=="usb", ATTRS{idVendor}=="04e8", MODE="0666", GROUP="plugdev"
对于之前的Android版本,这似乎并不重要,因为我们在该群组中没有任何用户,一切正常。