Package: libimobiledevice6 Version: 1.3.0-6+b3 On Debian Bookworm, idevice* will communicate with an iOS 17 device, but not with an iOS 5 device.
When running usbmuxd in the foreground, it prints the following error when the iOS 5 device is plugged in: [15:58:20.277][1] preflight_worker_handle_device_add: ERROR StartSession failed on device 6e8c5ae7c41b3fc71a6be705f1303343c7db53c6, lockdown error -5 >From that point, "idevice_id -l" produces no output, and ideviceinfo says "ERROR: No device found!". Apparently this is because iOS 5 uses SSLv3 to encrypt communications over the USB cable, but OpenSSL has intentionally removed SSLv3 interoperability. I installed libgnutls28-dev and libgcrypt20-dev, downloaded the libimobiledevice source package, added --disable-openssl to configure_flags, and built the libimobiledevice6 package. After I installed the modified libimobiledevice6 package and restarted usbmuxd, it no longer printed an error when the iOS 5 device was plugged in, and I was able to back up the device with idevicebackup2. I also tested the modified libimobiledevice6 with an iOS 17 device, and I was able to see that device with idevice_id, mount it with ifuse and copy files from the camera roll. I believe this is a regression that was introduced in 1.3.0-4 by changing from GnuTLS to OpenSSL. The corresponding 1.3.0-4 change should be reverted. To prevent this from happening again, a comment should be added to debian/rules above configure_flags, explaining why we build against GnuTLS instead of OpenSSL. -- Adam