Open yourchanges opened 2 days ago
Could you print the response you are getting?
modify the code in File "C:\Python311\Lib\site-packages\pymobiledevice3\usbmux.py", line 357, in get_device_list
def get_device_list(self, timeout: float = None) -> None:
""" get device list synchronously without waiting the timeout """
self.devices = []
self._send({'MessageType': 'ListDevices'})
print(self._receive(self._tag - 1))
for response in self._receive(self._tag - 1)['DeviceList']:
print(response)
if response['MessageType'] == 'Attached':
super()._add_device(MuxDevice(response['DeviceID'], response['Properties']['SerialNumber'],
response['Properties']['ConnectionType']))
elif response['MessageType'] == 'Detached':
super()._remove_device(response['DeviceID'])
else:
raise MuxException(f'Invalid packet type received: {response}')
just got
F:\mobileErasure\build\windows>pymobiledevice3 usbmux list
{'MessageType': 'Result', 'Number': 4294967295}
seems the "4294967295 is not a valid UsbmuxReplyCode" related.
It is not pmd3 related. This relates to "Apple Mobile Devices Service" win service. It poorly handles a lot of connected devices, also it depends on usb controllers and OS itself. 20 devices at one time seems work stable
@AnNEDoMini do you means I can try it on linux os, it can work around "Apple Mobile Devices Service" win itune service ?
@AnNEDoMini do you means I can try it on linux os, it can work around "Apple Mobile Devices Service" win itune service ?
Technically yes. But you still may encounter some problems. Also it heavily dependent on USB controllers on your PC and USB hubs.
Test environment
Describe the bug When running on a pc connected more than 30 iphone devices, I can't get all device list via 'pymobiledevice3 usbmux list',
If I disconnected the some iphone devices, make sure the number lower than 30, for example ,29 28 ,26 ,it works well. I can get correct device list.
To Reproduce just run : pymobiledevice3 usbmux list
Expected behavior display all device list
Logs