[Pkg-gtkpod-devel] Bug#1076544: Built with wrong SSL lib, won't talk to iOS 5
Adam Goldman
adamg at pobox.com
Thu Jul 18 10:42:04 BST 2024
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
More information about the Pkg-gtkpod-devel
mailing list