>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Swift

无需付费工具:查看 iPhone 备份内容的方法

Phosphor Banner

如果你曾经尝试从 iPhone 备份中提取特定聊天记录,或者只是想查看备份中存储了哪些文件,你可能已经遇到了苹果标准工具的局限性。Finder 以"全有或全无"的方式进行备份。要么将整个镜像恢复到手机上(存在覆盖新数据的风险),要么每年支付约 50 美元购买 iMazing 之类的工具。

我最近发现了开发者 Momen Basel 的 Phosphor 项目。这是一个原生 macOS 客户端,代码开源并采用 MIT 许可证,可以处理几乎所有 iOS 管理任务,无需订阅或依赖 iCloud。


这个应用能做什么

Phosphor 处理的是那些以前需要付费软件或从源码编译命令行工具才能完成的日常任务。

+-------------------------------------------------------------+
| Phosphor (macOS 14+ / SwiftUI)                              |
|   ├── Бэкапы (полные, инкрементальные, просмотр Manifest.db) |
|   ├── Экспорт iMessage, WhatsApp, заметок и контактов       |
|   ├── Просмотр файловой системы через AFC                   |
|   └── Диагностика (батарея, стриминг syslog, краш-репорты)  |
+-------------------------------------------------------------+
                                          
         (primary)                         (fallback)
 [pymobiledevice3]                  [libimobiledevice]

备份解析与导航

Phosphor 的主要功能是处理本地备份。它打开 Manifest.db,读取内部的 SQLite 数据库,并将数据整理成熟悉的类别:照片、消息、附件、系统文件。

值得一提的是,该应用开箱即用地支持加密备份。Phosphor 使用 PBKDF2 和 AES-256-CBC 算法原生解密数据,无需任何变通方案或调用外部 Python 脚本。你只需输入一次密码,程序在会话期间将密钥保存在内存中,或者如果你勾选了相应选项,就将其保存到 macOS Keychain 中。

导出消息和媒体

如果你需要从 iMessage 或 SMS 中提取消息,Phosphor 会在熟悉的界面中显示对话线程,使用蓝色和灰色的气泡样式。对话可以导出为多种格式:

  • HTML,保留消息应用的视觉样式
  • 干净的 JSON 或 CSV,便于进一步解析和分析
  • 纯文本 TXT

同样的提取功能也适用于 WhatsApp 数据库(ChatStorage.sqlite)、Apple Notes、vCard 格式的联系人,以及 .ics 中的日历事件。

IPA 安装和直接文件访问

通过 Apple File Conduit(AFC)协议,该工具可以让你浏览设备的文件系统结构,而无需在系统中挂载 FUSE 磁盘。你可以查看应用沙盒(Documents、Library、tmp 文件夹),用简单的拖放操作从那里复制文件,或者快速将 .ipa 推送到已连接测试 iPhone。

硬件诊断和日志查看

开发者和测试人员会发现诊断部分很有用。Phosphor 实时读取:

  • 精确的电池状态:出厂容量和实际容量(mAh)、充电周期计数和当前温度
  • 按类别划分的详细存储空间分析
  • 系统日志流(syslog),带有日志级别颜色高亮(Error、Warning、Debug)和过滤功能
  • 崩溃报告和设备上活动进程列表

底层技术细节

Phosphor 使用 Swift 5.9 和 SwiftUI 编写,适用于 macOS 14 Sonoma 及更高版本。作者做出了一些有趣的架构决策,使应用运行快速,且不会引入大量不必要的依赖。

  1. 两个后端可选。主要引擎是 pymobiledevice3 库,支持当前 iOS 版本,包括最近的发布版本。如果因任何原因不可用,界面会自动切换到经典的 libimobiledevice
  2. 无 C 绑定。项目不通过复杂的 C 库编译,而是通过子进程与命令行工具通信。这简化了项目维护。
  3. 使用系统库直接解析 SQLite。读取数据库不需要第三方 Swift 包——Phosphor 使用原生系统 sqlite3
  4. 安全的备份存储。从 1.0.4 版本开始,Phosphor 将副本保存到 ~/Documents/Phosphor Backups。这将备份与 Finder 的标准备份隔离开来,无需授予应用完整的磁盘访问权限。

如何安装和运行

部署应用最快的方式是通过 Homebrew Cask:

brew tap momenbasel/phosphor
brew install --cask phosphor

主要后端需要安装 pymobiledevice3

brew install pipx
pipx install pymobiledevice3

如果你想从仓库手动构建应用:

# Клонируем репозиторий
git clone https://github.com/momenbasel/Phosphor.git
cd Phosphor

# Собираем релизный бинарник
swift build -c release

# Упаковываем в .app бандл
bash Scripts/build.sh

# Запускаем собранный клиент
open .build/Phosphor.app

首次通过数据线连接手机时,需要解锁屏幕并点击"信任此电脑"。


总结

Phosphor 是一款便捷的工具,适合偶尔需要从 iPhone 提取特定文件、检查电池损耗或导出消息工作存档的用户。

哪些人会觉得这个项目有用:

  • 不想仅为了一年做几次导出就支付笨重专有软件的 Mac 用户
  • 需要快速收集崩溃日志、检查应用数据库和监控 syslog 的 QA 工程师和 iOS 开发者
  • 倾向于本地存储消息和联系人存档而不依赖云端的人

源代码托管在 GitHub 上,采用 MIT 许可证,项目维护活跃,可以轻松替代付费设备管理器的基本功能。

相关项目