在ubuntu上开发调试android时,有些Android手机在上ubuntu后无法使用adb,但在windows上是可以的,比如联想的a790e。
手机第一次通过usb连上ubuntu后,用lsusb输出如下:
上面的VID 2006: PID 5014就是手机的设备id。
而在windows上面,adb interface可用,用设备管理器看到显示的设备ID却是 VID 2006: PID 5010:
这其实是windows上面的特殊处理导致的。在windows上用adb shell打开文件系统看,会发现在手机的/system目录下有个叫cdrom.iso的文件,每次手机一插入windows的usb后,马上就会自动弹出这么一个对话框:
是不是很像一个存储类设备如u盘插入usb了的情形?对的,手机插入usb后,首先是通知系统这是一个存储类设备,这在ubuntu下面通过lsusb -t可以证实:
其class=stor应该就是表明设备属于storage类,usb-storage driver就是管理这个存储类usb设备的驱动。
也就是说,手机‘显示’地向系统repo