Как заглянуть внутрь резервной копии iPhone без платных утилит

Если вы хоть раз пробовали вытащить конкретный чат из бэкапа iPhone или просто посмотреть, какие файлы лежат в резервной копии, то наверняка упирались в ограничения стандартных инструментов Apple. Finder делает бэкапы по принципу «всё или ничего». Либо накатывай образ целиком на телефон с риском перезаписать свежие данные, либо покупай условный iMazing за 50 долларов в год.
Недавно наткнулся на проект Phosphor от разработчика Momen Basel. Это нативный 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 в реальном времени считывает:
- Точное состояние аккумулятора: заводскую и фактическую емкость в мА·ч, число циклов перезарядки и текущую температуру.
- Детализированную раскладку накопителя по категориям.
- Поток системного журнала (syslog) с цветовой подсветкой уровней логов (Error, Warning, Debug) и фильтрацией.
- Краш-репорты и список активных процессов на устройстве.
Технические детали под капотом
Phosphor написан на Swift 5.9 и SwiftUI для macOS 14 Sonoma и новее. Автор принял несколько любопытных архитектурных решений, благодаря которым приложение работает быстро и не тянет за собой гору лишних зависимостей.
- Два бэкенда на выбор. Основным движком выступает библиотека
pymobiledevice3, которая поддерживает актуальные версии iOS, включая свежие релизы. Если она по какой-то причине недоступна, интерфейс автоматически переключается на классическийlibimobiledevice. - Отказ от C-биндингов. Вместо сложной сборки си-библиотек внутри проекта логика взаимодействует с консольными утилитами через subprocess. Это упрощает сопровождение проекта.
- Прямой парсинг SQLite через системные библиотеки. Никаких сторонних Swift-пакетов для чтения баз данных — Phosphor задействует нативный системный
sqlite3. - Безопасное хранение бэкапов. Начиная с версии 1.0.4, Phosphor сохраняет копии в
~/Documents/Phosphor Backups. Это изолирует их от стандартных бэкапов Finder и не требует выдавать приложению полные права на диск (Full Disk Access).
Как установить и запустить
Самый быстрый способ развернуть приложение — через 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 получился удобным инструментом для тех, кому время от времени нужно достать конкретные файлы с айфона, проверить износ аккумулятора или выгрузить рабочий архив сообщений.
Кому проект пригодится:
- Владельцам Mac, которые не хотят платить за громоздкий проприетарный софт ради пары выгрузок в год.
- QA-инженерам и iOS-разработчикам для быстрого сбора crash-логов, проверки баз данных приложений и мониторинга syslog.
- Тем, кто хранит архивы переписок и контактов локально, не полагаясь на облако.
Исходный код лежит на GitHub под лицензией MIT, проект активно дополняется и без проблем заменяет базовые сценарии платных менеджеров устройств.
