usb modeswitch hacks

本文介绍了在Ubuntu上遇到的Android手机(如联想A790e)无法通过ADB调试的问题。问题在于手机连接后被识别为存储设备,而非调试设备。通过分析Windows上的工作原理,了解到需要使用usb_modeswitch工具来切换USB模式。详细步骤包括使用usb_modeswitch手动测试设备,创建配置文件,并结合udev规则实现自动切换,最终使得Ubuntu能正确识别并使用adb接口。
摘要由CSDN通过智能技术生成

在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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值