跳到主要内容
Reincubate

如何通过磁盘挂载访问 iPhone 文件

Aidan Fitzpatrick

发布于 2019年2月22日· 更新于 2021年1月4日

挂载最初的 iPod 并像 USB 驱动器一样访问它很容易。iPhone 也可以做到这一点,不过根据你要处理的数据类型,方法有所不同。

在本文中,我们将探讨以下不同的方法:

方法可访问的文件要求
PTP照片和视频Windows 和 macOS 内置
AFC照片、视频和部分 AppiTunes
FUSE(无需越狱)照片、视频和部分 App免费 FUSE 客户端
FUSE(需要越狱)所有文件越狱、免费 FUSE 客户端
通过 Filza 使用 WebDAV所有文件越狱、免费 WebDAV 客户端
AFC2所有文件越狱、AFC2 插件、AFC2 客户端
其他无不适用于新版 iOS

PTP:将照片、视频和相机数据作为磁盘挂载来访问

通过 USB 连接时,iOS 会自动将新款设备显示为相机。这使用的是图片传输协议(PTP),该系统功能相当有限,只允许你来回复制照片。你可能会认出照片通常出现的 DCIM 文件夹。

PTP 有许多缺点:最明显的是,你只能访问相机中的文件。而且 PTP 不支持重命名或修改文件或文件夹等功能:要实现更改,它必须先删除再重新创建,这很慢。

通过 iTunes 使用 AFC 访问照片和 App 数据

Apple 的知识库中有一篇文章,介绍如何管理iTunes 的基本文件共享。

通过 USB 使用 FUSE 访问 App 数据

FUSE 是一种让用户无需对系统进行管理员级别的更改,就能在 Windows 或 Mac 电脑上挂载驱动器的系统。FUSE 是“用户空间文件系统”(filesystem in userspace)的缩写,在大多数平台上都有不同形式的实现。FUSE 本身是一个抽象层,也就是说,它并不是直接与设备或数据源通信的技术:通常会使用另一种方法来实现。在将 iPhone 挂载为驱动器的情况下,FUSE 会使用另一种协议与 iPhone 通信:SSH、AFC/AFC2、PTP 或 WebDAV。在 Windows 上,常用的是流行的 Dokan 用户模式文件系统,而在 macOS 上,osxfuse 比较流行。

从用户的角度来看,由于 FUSE 统一了设备数据的呈现方式,因此通常不必在意是哪种底层协议负责挂载。

在 macOS 上使用 FUSE 挂载

让我们在 macOS 上演示这种方法,以及如何挂载设备。要使其正常工作,你需要安装免费的 Homebrew 包管理器,并熟悉 macOS 上“终端”的使用。

首先,让我们找到你设备的 UDID。你可以使用免费版的 iPhone Backup Extractor、lsusb 命令或 ioreg -p IOUSB -l -w 0 来完成。在设备已连接的情况下运行 iPhone Backup Extractor,选择你的设备,然后选择“信息”选项卡。你会在“硬件标识符”部分看到显示的 UDID:

iPhone Backup Extractor 中显示的设备数据

iPhone Backup Extractor 中显示的设备数据

接下来,让我们为 macOS 准备好 FUSE:

$ brew tap homebrew/cask
$ brew cask install osxfuse

==> Caveats
To install and/or use osxfuse you may need to enable their kernel extension in

  System Preferences → Security & Privacy → General

For more information refer to vendor documentation or the Apple Technical Note:

  https://developer.apple.com/library/content/technotes/tn2459/_index.html

You must reboot for the installation of osxfuse to take effect.

然后安装 ifuse,它是可以通过 FUSE 与 iOS 设备通信的代码:

$ brew install ifuse

安装 ifuse 后,就可以使用我们之前获得的 UDID 来挂载你的 iPhone 或 iPad:

$ mkdir ~/iphone
$ ifuse ~/iphone --udid 000000000000000000000000

这会将你的 iPhone 作为磁盘挂载到你的电脑上。如果你想更进一步,深入挖掘更多数据,这篇 superuser 帖子相当实用,同样,这篇帖子介绍了 usbmuxd 工具的使用。

需要使用 usbmuxd? 的预发布版本

usbmuxd 的更新并不频繁,因此偶尔在新版 iOS 发布时,它会缺乏支持。要解决这一问题,你可以按如下方式安装它的最新开发版本:

brew unlink usbmuxd
brew install --HEAD usbmuxd
brew unlink libimobiledevice
brew install --HEAD libimobiledevice
brew cask uninstall osxfuse
brew cask install osxfuse idevicepair

在越狱设备上通过 USB 使用 FUSE 访问 App 数据

操作说明与上文完全相同。设备越狱后,你会立即看到更多数据。很不错吧?

使用 Filza 的 WebDAV 服务器访问 iOS 根文件

在越狱的 iOS 设备上,可以通过 Cydia 安装一款名为 Filza 的文件管理器 App。在 Filza 的设置中,你可以启用 WebDAV 服务器模式。这为其他设备访问你的 iOS 设备提供了相当简单的界面,不过极不安全。WebDAV 是一种非常通用的处理网络数据的机制,有许多客户端可以访问它,包括 Filza 内置的网页界面。用网页浏览器连接到你的设备,就能看到该界面。很简单。

使用 AFC2 通过 USB 访问 iOS 文件

AFC2 可以从 Cydia 安装,安装后,AFC 客户端就可以浏览设备的全部内容。

在越狱设备上访问所有数据的其他方法

在 iOS 8 发布之前,针对越狱设备有好几个 Cydia 插件,可以让 iPhone 在连接时呈现为 USB 闪存盘。可惜,新版 iOS 已不再支持这些插件。

从已挂载的 iOS 设备中恢复已删除的文件

如果你可以将 iPhone 或 iPad 作为驱动器挂载,你可能会认为可以在越狱设备上直接操作文件系统来恢复已删除的文件。遗憾的是,你无法通过这种方式从 iPhone 中恢复文件,因为文件系统是加密的。即使你能找到部分数据,也无法解密。每个文件都有自己的加密密钥,而这些密钥会在删除时被丢弃。

Apple 的 iOS 安全指南在第 17 页的“架构概述”中简要介绍了这一点:

每次在数据分区上创建文件时,数据保护都会创建一个新的 256 位密钥(“每文件”密钥),并将其交给硬件 AES 引擎,该引擎使用该密钥,以 AES-XTS 模式在文件写入闪存时对其加密。在配备 A7、S2 或 S3 SoC 的设备上,使用的是 AES-CBC。初始化向量由文件内的块偏移量计算得出,并使用每文件密钥的 SHA-1 哈希值加密。

挂载对于访问现有文件很有效,但对恢复帮助不大。要恢复数据,你需要 iTunes 备份或 iCloud 备份、已同步到 iCloud 的数据,或设备在数据被删除之前的取证镜像。

额外内容:从 iPhone 或 iPad 挂载你的 Windows 电脑

iOS 13 引入了对 SMB 的支持。这让用户可以远程访问 Windows 电脑上的驱动器。具体方法如下:

  1. 找到你的 Windows 电脑的 IP 地址。ipconfig 命令应该可以告诉你。
  2. 在 Windows 电脑上,右键点击你想共享的文件夹,然后选择 Properties → Sharing → Advanced sharing。点击“共享此文件夹”。
  3. 在“共享”选项卡中,选择 Share...,然后在下拉菜单中选择你的用户账户,添加它,并确保它拥有“读取/写入”权限。点击“共享”和“应用”,然后关闭窗口。
  4. 在你的 iOS 设备上,打开 Apple 的“文件”App,点击“连接服务器”。输入 smb://,后面跟上你 PC 的 IP 地址。然后选择“注册用户”,并输入你的 Windows 账户名称和密码。

完成后,你的 Windows 驱动器应该会出现在 iOS 设备上。


关于作者

Aidan Fitzpatrick

创始人兼首席执行官

Aidan 于 2008 年创立了 Reincubate,此前他打造出了全球首款 iOS 数据恢复工具。自此,他带领公司成长为全球顶尖的独立软件开发商之一,与 AMD、Qualcomm、HP 等公司合作,率先为视频软件打造出具有重要意义的机器学习功能,其中以 Camo 应用生态系统最为突出。在 Aidan 的领导下,Reincubate 四次荣获英国商业界的最高荣誉,入选《星期日泰晤士报》百强科技企业榜单,并凭借 Apple Design Award 与 App Store 提名获得业界认可。他的研究成果与方法常被移动取证领域的学术论文引用,他还曾受邀在 Google、Microsoft、Snap 等公司举办的活动上发表演讲。


相关文章

需要帮助吗?

我们会尽力在一个工作日内回复所有消息。

support@reincubate.com
帮助