>_ DevTrendsen

Language

Home

Languages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Security
Swift

How to Look Inside an iPhone Backup Without Paid Utilities

Phosphor Banner

If you've ever tried to extract a specific chat from an iPhone backup or just wanted to see what files are stored in a backup, you've likely run into the limitations of Apple's standard tools. Finder backs up on an "all or nothing" basis. Either you restore the entire image to your phone with the risk of overwriting fresh data, or you pay around $50 a year for something like iMazing.

I recently came across the Phosphor project by developer Momen Basel. It's a native macOS client with open source code under the MIT license that handles nearly all iOS management tasks without subscriptions or iCloud dependency.


What the app can do

Phosphor takes care of the routine tasks that previously required keeping paid software or compiling command-line utilities from source.

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

Backup parsing and navigation

Phosphor's main feature is working with local backups. It opens Manifest.db, reads SQLite databases inside, and organizes data into familiar categories: photos, messages, attachments, system files.

What's nice is that the app works with encrypted backups right out of the box. Phosphor natively decrypts data using PBKDF2 and AES-256-CBC algorithms, without workarounds or calling external Python scripts. You enter your password once, the program keeps the key in memory for the session, or saves it to macOS Keychain if you check the box.

Exporting messages and media

If you need to extract messages from iMessage or SMS, Phosphor displays conversation threads in a familiar interface with blue and gray bubbles. Dialogues can be exported in various formats:

  • HTML with preserved messenger visual styling
  • Clean JSON or CSV for further parsing and analysis
  • Plain TXT

The same extraction works for WhatsApp database (ChatStorage.sqlite), Apple Notes, contacts in vCard format, and calendar events in .ics.

IPA installation and direct file access

Through the Apple File Conduit (AFC) protocol, the utility lets you browse the device's file structure without needing to mount FUSE disks in the system. You can look into app sandboxes (Documents, Library, tmp folders), copy files from there with simple drag-and-drop, or quickly push .ipa to a connected test iPhone.

Hardware diagnostics and log viewing

Developers and testers will find the diagnostics section useful. Phosphor reads in real time:

  • Precise battery state: factory and actual capacity in mAh, charge cycle count, and current temperature.
  • Detailed storage breakdown by categories.
  • System log stream (syslog) with color highlighting of log levels (Error, Warning, Debug) and filtering.
  • Crash reports and list of active processes on the device.

Technical details under the hood

Phosphor is written in Swift 5.9 and SwiftUI for macOS 14 Sonoma and later. The author made several interesting architectural decisions that make the app fast and don't drag along a mountain of unnecessary dependencies.

  1. Two backends to choose from. The main engine is the pymobiledevice3 library, which supports current iOS versions including recent releases. If it's unavailable for any reason, the interface automatically switches to the classic libimobiledevice.
  2. No C bindings. Instead of complex compilation of C libraries within the project, the logic communicates with command-line utilities via subprocess. This simplifies project maintenance.
  3. Direct SQLite parsing via system libraries. No third-party Swift packages for reading databases — Phosphor uses the native system sqlite3.
  4. Safe backup storage. Starting from version 1.0.4, Phosphor saves copies to ~/Documents/Phosphor Backups. This isolates them from Finder's standard backups and doesn't require granting the app full disk access.

How to install and run

The fastest way to deploy the app is via Homebrew Cask:

brew tap momenbasel/phosphor
brew install --cask phosphor

The main backend requires installing pymobiledevice3:

brew install pipx
pipx install pymobiledevice3

If you want to build the app manually from the repository:

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

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

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

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

When connecting your phone via cable for the first time, you need to unlock the screen and tap "Trust this computer".


The bottom line

Phosphor turned out to be a handy tool for those who occasionally need to extract specific files from an iPhone, check battery wear, or export a working archive of messages.

Who will find this project useful:

  • Mac owners who don't want to pay for bulky proprietary software just to make a couple of exports a year.
  • QA engineers and iOS developers for quickly gathering crash logs, checking app databases, and monitoring syslog.
  • Those who store message and contact archives locally without relying on the cloud.

The source code is on GitHub under the MIT license, the project is actively maintained, and it easily replaces the basic scenarios of paid device managers.

Related projects