iOS
iOS 是苹果公司为 iPhone 系列智能手机创建的操作系统。虽然苹果不支持将 iOS 设备连接到 Linux,但 libimobiledevice 项目提供了库和工具,用于连接 iOS 设备和 Linux 机器并在它们之间传输数据。
安装
安装 libimobiledevice 软件包。
连接设备
Usbmux 守护进程
libimobiledevice 软件包依赖于 usbmuxd,它负责执行与 iOS 设备的底层连接。usbmuxd 软件包还包含一个 udev 规则,该规则在设备连接或断开连接时自动启动和停止守护进程。
连接 iOS 设备并验证 usbmuxd.service
是否自动启动。
$ systemctl status usbmuxd.service
... Active: active (running) since Sun 2020-01-19 19:23:18 UTC; 22s ago ...
配对
连接 iOS 设备并解锁屏幕后,您应该在设备上看到“信任此电脑?”弹出窗口。点击“信任”,然后输入您的设备密码以完成配对过程。
如果您没有看到弹出窗口,您可以手动启动配对过程。连接设备,解锁屏幕并运行
$ idevicepair pair
SUCCESS: Paired with device d8e8fca2dc0f896fd7cb4cb0031ba249
如果您连接了多个 iOS 设备,可以传递 --udid ios_udid
参数以定位特定设备。
您可以通过运行以下命令验证配对是否成功
$ idevicepair validate
SUCCESS: Validated pairing with device 00008030-001D3562367A402E
传输数据
配对后,iOS 向计算机公开两个不同的文件系统。一个是媒体文件系统,包含设备的照片、视频和音乐。第二个文件系统用于将文件直接共享到某些应用程序。这有时被称为“iTunes 文稿共享”。 [1] [2]
使用图形文件管理器
使用 GVFS 的文件管理器可以与 iOS 设备交互。要访问媒体文件系统,安装 gvfs-gphoto2。要访问应用程序文稿文件系统,安装 gvfs-afc。
Dolphin 对 iOS 设备的支持包含在 kio-extras 软件包中,该软件包已经是 Dolphin 的依赖项。 [3]
手动挂载
安装 ifuse 软件包。然后,您可以运行以下命令来挂载 iPhone 的媒体文件系统
$ ifuse mountpoint
您可以使用它来访问 挂载点/DCIM
内的设备照片。
挂载点/iTunes_Control
中访问。您无法通过这种方式向设备添加新歌曲,但您可以将歌曲从设备复制到计算机。要访问应用程序的文稿文件系统,首先您需要识别应用程序
$ ifuse --list-apps
"CFBundleIdentifier","CFBundleVersion","CFBundleDisplayName" "org.videolan.vlc-ios","432","VLC" "org.wikimedia.wikipedia","1932","Wikipedia" "org.kde.kdeconnect","2","KDE Connect" [...]
然后,您可以使用以下命令挂载应用程序的文件
$ ifuse --documents APPID mountpoint
其中 APPID 是所需应用程序的捆绑标识符,例如 org.videolan.vlc-ios
。
完成后,卸载文件系统
$ fusermount -u mountpoint
导入视频和图片
照片和视频通常都可以在 <挂载点>/DCIM/100APPLE
中找到。
iOS 倾向于使用不太受支持的格式,但可以配置为使用兼容性更好的格式。[4] 此外,您可能希望 转换 已经以兼容性较差的 Apple 格式保存的媒体。
故障排除
ifuse 挂载应用程序目录失败
当使用 ifuse 挂载应用程序目录时,尝试列出挂载点的内容时,您可能会遇到以下错误
".": Input/output error (os error 5)
这是一个 已知问题,已在当前 libimobiledevice 开发版本中修复,但尚未在稳定版本中发布。一种解决方法是安装 libimobiledevice-gitAUR。
设备无法重定向到虚拟机
如果您使用 Windows 虚拟机通过 USB 同步设备,则尝试重定向设备可能会失败,并显示“设备正被另一个应用程序使用”消息。这是由于连接设备时自动启动了 usbmuxd.service
。可以通过停止或屏蔽 usbmuxd.service
来解决此问题。
参见
- Ubuntu iPhone 和 iPod Touch 文档(自 2014 年以来未更新)