我最近将我的 android 手机更新为 Marshmallow。对我来说不幸的是,这破坏了我的 python 代码。
使用 PyUSB,我可以让设备进入附件模式。不幸的是,我无法再读取/写入设备,因为现在使用set_configuration()
重置连接,导致设备退出附件模式并重新进入 MTP 模式。
dev = list(usb.core.find(find_all=True))[0]
dev.ctrl_transfer(0xc0,51,data_or_wLength=2)
dev.ctrl_transfer(0x40,52,wIndex=0,data_or_wLength='SAMSUNG')
dev.ctrl_transfer(0x40,52,wIndex=1,data_or_wLength='SAMSUNG_Android')
dev.ctrl_transfer(0x40,52,wIndex=2,data_or_wLength='16DIGITSERIALNUM')
dev.ctrl_transfer(0x40,52,wIndex=3,data_or_wLength='AOA')
dev.ctrl_transfer(0x40,52,wIndex=4,data_or_wLength='Whatever')
dev.ctrl_transfer(0x40,52,wIndex=5,data_or_wLength='4')
dev.ctrl_transfer(0x40,53)
time.sleep(5)
dev = list(usb.core.find(find_all=True))[0]
dev.set_configuration() ## Aaaaaand we're back to MTP...
我找不到任何解决方法;没有提到这个问题。我唯一能想到的解决方案是学习C并libusb
直接使用,假设PyUSB
模块是罪魁祸首......