libimobiledevice / libirecovery

Library and utility to talk to iBoot/iBSS via USB on Mac OS X, Windows, and Linux
https://libimobiledevice.org
GNU Lesser General Public License v2.1
550 stars 207 forks source link

Failures on DFU mode (Windows) #101

Closed skortela closed 8 months ago

skortela commented 2 years ago

Steps to reproduce: Place device to DFU mode (https://www.easeus.com/ios-tips/how-to-get-into-dfu-mode-on-iphone-8-8-plus-x.html).

Run idevicerestore to erase/flash device.

Waiting for device to reconnect...
ERROR: Unable to send iBEC component: Unable to find device
ERROR: Unable to send iBEC to device
ERROR: Unable to place device into recovery mode from DFU mode

DFU mode is detected as expected, however idevicerestore fails at some point.

Seems that libirecovery mobiledevice_connect method fails during mode change. Mode change happens and device enters to recovery mode, libirecovery is not unable to connect device.

mobiledevice_connect method searches DFU and IBOOT interfaces.

dfu path:   \\?\usb#vid_05ac&pid_1281&mi_01#7&26ce7050&3&0001#{b8085869-feb9-404b-8cb1-1e5c14fa8c54}\usb#vid_05ac&pid_1281#sdom:01_cpid:8015_cprv:11_cpfm:03_scep:01_bdid:0c_ecid:00113dd918d2402e_ibfl:3c_srnm:[fd3vw25vjcm4]#mux1
iBoot path: \\?\usb#vid_05ac&pid_1281&mi_00#7&26ce7050&3&0000#{ed82a167-d61a-4af6-9ab6-11e52236c576}\usb#vid_05ac&pid_1281#sdom:01_cpid:8015_cprv:11_cpfm:03_scep:01_bdid:0c_ecid:00113dd918d2402e_ibfl:3c_srnm:[fd3vw25vjcm4]#mux1

DFU is found first and connection is estabileshed. However it is not working.

There is also IBOOT interface present, and if that is selected instead then restore is able to proceed further. However finally that also breaks, as device fails to enter restore mode.

Log: master_dfu.log

Note: DFU mode is working on Mac environment.

nikias commented 8 months ago

Addressed this with 345ac620f2c13322328a51128f76383bf69c1e45 and 0a0ad0c4f125d7366a56df0e548ee2ca21114c76