尝试使用 USB 线连接 Kubuntu 16.04 盒子,连接运行 iOS 10.0.2 的 iPad Pro 12.9
:~$ /usr/bin/idevicepair -u ***** pair
SUCCESS: Paired with device
:~$ idevicepair validate *********
SUCCESS: Validated pairing with device
:~$ ifuse ~/media/ipad -u ******
GnuTLS error: Error in the pull function.
Failed to connect to lockdownd service on the device.
Try again. If it still fails try rebooting your device.
重启,重复,结果相同。有人知道哪里出了问题吗,或者有没有更好的论坛来问这个问题?
谢谢,Gus
抱歉 Rinzwind,我并不是想戏弄任何人。无论如何,以下是根据您的建议得到的结果。我不确定如何检查 openssl 是否使用 SSLv3(帮忙?)
$ env | grep 99
GNUTLS_DEBUG_LEVEL=99
$ /usr/bin/idevicepair validate
gnutls[2]: Enabled GnuTLS 3.4.10 logging...
gnutls[2]: Intel SSSE3 was detected
gnutls[2]: Intel AES accelerator was detected
gnutls[2]: Intel GCM accelerator was detected
SUCCESS: Validated pairing with device ***********
(下面安装到 /media/ipad 而不是 ~/media/ipad .....)
$ ifuse /media/ipad -u **********
gnutls[2]: Enabled GnuTLS 3.4.10 logging...
gnutls[2]: Intel SSSE3 was detected
gnutls[2]: Intel AES accelerator was detected
gnutls[2]: Intel GCM accelerator was detected
gnutls[5]: REC[0x19d7300]: Allocating epoch #0
gnutls[3]: ASSERT: gnutls_constate.c:596
gnutls[5]: REC[0x19d7300]: Allocating epoch #1
gnutls[4]: HSK[0x19d7300]: Keeping ciphersuite: GNUTLS_RSA_AES_128_CBC_SHA1 (00.2F)
gnutls[4]: HSK[0x19d7300]: Keeping ciphersuite: GNUTLS_RSA_AES_256_CBC_SHA1 (00.35)
gnutls[4]: EXT[0x19d7300]: Sending extension ENCRYPT THEN MAC (0 bytes)
gnutls[4]: EXT[0x19d7300]: Sending extension SAFE RENEGOTIATION (1 bytes)
gnutls[4]: EXT[0x19d7300]: Sending extension SESSION TICKET (0 bytes)
gnutls[4]: HSK[0x19d7300]: CLIENT HELLO was queued [62 bytes]
gnutls[11]: HWRITE: enqueued [CLIENT HELLO] 62. Total 62 bytes.
gnutls[11]: HWRITE FLUSH: 62 bytes in buffer.
gnutls[5]: REC[0x19d7300]: Preparing Packet Handshake(22) with length: 62 and min pad: 0
gnutls[9]: ENC[0x19d7300]: cipher: NULL, MAC: MAC-NULL, Epoch: 0
gnutls[11]: WRITE: enqueued 67 bytes for 0x19dac30. Total 67 bytes.
gnutls[5]: REC[0x19d7300]: Sent Packet[1] Handshake(22) in epoch 0 and length: 67
gnutls[11]: HWRITE: wrote 1 bytes, 0 bytes left.
gnutls[11]: WRITE FLUSH: 67 bytes in buffer.
gnutls[11]: WRITE: wrote 67 bytes, 0 bytes left.
gnutls[3]: ASSERT: gnutls_buffers.c:1154
gnutls[10]: READ: -2 returned from 0x19dac30, errno=0 gerrno=0
gnutls[3]: ASSERT: gnutls_buffers.c:367
gnutls[3]: ASSERT: gnutls_buffers.c:588
gnutls[3]: ASSERT: gnutls_record.c:1038
gnutls[3]: ASSERT: gnutls_record.c:1158
gnutls[3]: ASSERT: gnutls_buffers.c:1409
gnutls[3]: ASSERT: gnutls_handshake.c:1446
gnutls[3]: ASSERT: gnutls_handshake.c:2757
gnutls[5]: REC[0x19d7300]: Start of epoch cleanup
gnutls[5]: REC[0x19d7300]: End of epoch cleanup
gnutls[5]: REC[0x19d7300]: Epoch #0 freed
gnutls[5]: REC[0x19d7300]: Epoch #1 freed
GnuTLS error: Error in the pull function.
Failed to connect to lockdownd service on the device.
Try again. If it still fails try rebooting your device.
答案1
尝试遵循 PPA,它对我有用(感谢马丁·萨尔巴巴)、
升级libimobiledevice及相关包至较新版本:
sudo add-apt-repository ppa:martin-salbaba/ppa+libimobiledevice
sudo apt-get update
sudo apt install libimobiledevice-utils ifuse
配对步骤:
将您的 iOS 10 设备连接到计算机:
idevicepair pair
对于设备上的“信任这台电脑吗?”警告,请选择“信任”:
idevicepair pair
挂载 iOS 文件系统
ifuse Directory_to_mount_iDevice/
以上测试是在搭载 iOS 10.1.1 的 iPhone 6s 上进行的
并且:
正确卸载:
fusemount -u Directory_to_mount_iDevice/
参考:
答案2
看来 iOS 10.2 苹果又把它搞坏了。修复方法:
从 GitHub 下载最新版本:libplist、libusbmuxd、libimobiledevice、ifuse 和 usbmuxd
把它们放进去在 /usr/local/lib 中并编译(如果你不知道怎么做,只需按照每个库中的自述文件中的说明进行操作,并记住开发版本的openssl叫做libssl-dev在需要的时候)
确保环境变量指向新版本而不是官方软件包中包含的旧版本:
sudo LD_LIBRARY_PATH=/usr/local/lib usbmuxd export LD_LIBRARY_PATH=/usr/local/lib
将您的 iOS 10.2 设备连接到计算机:
idevicepair pair
对于设备上的“信任这台电脑吗?”警告,请选择“信任”:
idevicepair pair
挂载 iOS 文件系统
ifuse Mountpoint_Directory/
在 Ubuntu 16.04 和搭载 iOS 10.2 的 iPhone 7 上进行了测试
答案3
GnuTLS 错误:拉取功能出错。
是网络错误。您可以设置GNUTLS_DEBUG_LEVEL
到 99 以获取有关错误的更多信息。它可能会告诉您您使用的库比要求的要旧,或者 openssl 有问题。
但 ...
如果使用〜/媒体/ iPad的-u
我觉得不对劲?为什么 /media 前面有个 ~?我猜你是在 /media 而不是家里安装设备吧?
另外,请确保您不要使用没有 SSLv3 的 openssl,否则它将失败并出现 closedd 服务错误通知。