启用 MTP 后,Ubuntu 上的 Nexus 设备对 ADB 不可见

Nexus device not visible to ADB on Ubuntu when MTP is enabled

This question 描述了与 Windows 7 相同的问题。问题是 adb devices 显示没有设备,尽管安装了最新的 Android SDK,并且进行了 USB 调试已在平板电脑中打开。

我的案例是 Nexus 9 上的 Android 5.1.1。据我所知,该问题也存在于其他设备上。我不知道其他 Android 版本。

One solution是在设备上禁用MTP:

设置 --> 存储 --> 左上选项(计算机 USB 连接)点击 --> 取消选中“选择 MTP”

但是,如果您希望自动化该过程,这可能无法实现。

Linux 的解决方法是防止 MTP 探测发生(这允许 Android 设备继续显示为具有 MTP 和 ADB 接口的复合设备)。在 Ubuntu 上执行此操作的最简单方法是 sudo apt get remove libmtp-common libmtp-runtime libmtp9,然后重新启动。您将无法再在那台计算机上使用 MTP。

您可以使用 lsusb -v 来验证 MTP/ADB 问题是否已解决;如果您在设备下看到多个 bInterfaceDescriptor,其中一个 bInterfaceSubClass66 (0x42),但您在 adb devices 中仍然看不到任何条目,则您有一个不同的问题。