Phosphor
Phosphor
Free and open-source iOS device manager for macOS.
Download: https://github.com/momenbasel/Phosphor/releases/latest Website: https://momenbasel.github.io/Phosphor/ Features: See installation and capabilities described below
Phosphor is a native macOS application, built with SwiftUI, that gives you thorough control over your iPhone, iPad, and iPod touch without relying on proprietary software, iCloud lock-in, or recurring subscriptions. It leverages powerful backends like pymobiledevice3 and libimobiledevice as fallback, enabling a broad range of device management tasks directly from your Mac. Phosphor supports iOS versions in the 17 to 26+ range and runs on macOS 14 (Sonoma) or later. Its design emphasizes openness, portability, and a zero-external-dependency approach when possible, delivered through a clean MVVM architecture.
Why Phosphor?
Apple’s Finder integration serves as a capable starting point for basic tasks, but it can feel limited when you need more hands-on access to backups, messages, or app data. Proprietary tools like iMazing offer expansive capabilities, yet they come with subscriptions and higher price points. Phosphor aims to fill the gap by delivering a robust, feature-rich solution that remains free, open source, and self-contained.
Key motivations behind Phosphor include:
- Accessibility: a single, native macOS app to manage iOS devices without the overhead of cloud services or paid subscriptions.
- Depth: from full device backups to granular access to messages, photos, app data, and the file system, Phosphor aims to cover a broad spectrum of user needs.
- Compatibility: prioritizing a modern, forward-looking backend (pymobiledevice3) while providing a solid fallback via libimobiledevice to ensure broad device support.
- Transparency: the project is built with a focus on open-source ethics and clean design principles, avoiding opaque dependencies where possible.
Core Design and Features
Phosphor orchestrates a suite of capabilities across several domains, each designed to give you practical tools for device management, data access, and backup handling. Below is a guided tour of the major feature areas, with emphasis on what matters most to power users who want complete visibility and control.
Device Management
- Automatic detection of connected iOS devices via USB, so you’re up and running with little friction.
- Comprehensive device information: model, iOS version, serial number, UDID, IMEI, and MAC addresses for Wi-Fi and Bluetooth.
- Management controls: pair and unpair devices, perform device restarts, shutdowns, or sleep commands.
- Real-time device monitoring: capture screenshots directly from the device for quick reference or diagnostics.
Backups
- Local backups: create full and incremental backups on your Mac, avoiding iCloud entirely.
- Backup inspection: browse backups by parsing the Manifest.db and navigating by domain (Camera Roll, Apps, Home, System, Keychain, etc.).
- File search: across the entire backup, with the ability to extract individual files or entire domains.
- Encryption management: enable, disable, or adjust encryption settings for backups.
- Cleanup: remove older backups to manage disk space effectively.
Messages
- Access iMessages and SMS conversations stored in backups, presented in a native chat-like interface.
- Global search across all messages for quick lookup.
- Export options: convert conversations to CSV, HTML, Plain Text, or JSON, with an option to export all conversations at once.
- HTML export mimics the native iMessage presentation, including bubble styling for a familiar look.
Photos & Videos
- Browse Camera Roll content from backups without requiring a full restore.
- Filters by content type: Photos, Videos, Screenshots.
- Multiple viewing layouts: grid and list views.
- Batch extraction to a chosen folder while preserving original filenames and directory structure.
Applications
- List installed apps on connected devices and inspect app containers within backups (Documents, Library, tmp).
- Install IPA files directly to a device, or remove apps as needed.
- Extract individual app containers for analysis or data recovery.
File System
- Access the device filesystem via Apple File Conduit (AFC); no need for FUSE or ifuse on macOS Sonoma and newer.
- Navigate directories, view file metadata, and copy files to/from the device.
- Browse specific app containers (Documents, Library, tmp) and delete files on the device.
- Drag-and-drop file transfers streamline moving data to and from the device.
Contacts
- Browse all contacts stored in backup AddressBook databases.
- View contact details including phone numbers, emails, and organization data.
- Search across all contacts and export to vCard (.vcf) or CSV for portability.
Calendar
- Inspect calendars and events from backups, with event details, durations, and all-day status.
- Export options include ICS (iCalendar) or CSV for easy sharing and archiving.
Apple Watch
- View paired Apple Watch data sourced from the iPhone backup.
- Browse WatchKit extension apps and their data sizes.
- Access activity-related history (Move, Exercise, Stand) and extract all Watch-related data from backups.
Diagnostics
- Battery metrics: current charge, charging state, health percentage, design vs. actual capacity (mAh), cycle count, and temperature.
- Storage overview: total capacity, usage breakdown (Apps, Photos, Media, Other), and available space.
- Real-time system log streaming with proper process termination.
- Log filtering and search, exportable to files, with color-coded levels for errors, warnings, and debug messages.
- Crash report viewer for device crash analysis.
- Process monitor showing live device processes.
Backup Management
- Time Machine-style visualization: a 3D animated backup browser for a more intuitive restore experience.
- Scheduled backups: automatic backups on an hourly, daily, weekly, or monthly cadence via USB or Wi-Fi.
- Portable backup export/import using the .phosphor archive format.
- Backup encryption management for enabling, disabling, or changing encryption passwords.
- Drag-and-drop support within the file browser to streamline transfers.
Installation and Getting Started
Phosphor offers multiple paths to install, depending on your preferred workflow and environment.
Homebrew (recommended)
- Steps:
- brew tap momenbasel/phosphor
- brew install --cask phosphor
- This path ensures you receive updates and manage the install through a familiar macOS package manager.
Manual installation
- Download the latest .dmg from Releases.
- Drag Phosphor.app to Applications.
- Install pymobiledevice3: pip3 install pymobiledevice3
- Optional: fallback libraries for legacy operations: brew install libimobiledevice ideviceinstaller
Building from Source (advanced)
- Steps:
- pip3 install pymobiledevice3 (primary backend)
- brew install libimobiledevice ideviceinstaller (optional fallback tools)
- git clone https://github.com/momenbasel/Phosphor.git
- cd Phosphor
- swift build -c release
- bash Scripts/build.sh
- open .build/Phosphor.app
- This route is best if you want to contribute or customize the build.
Requirements and Backend Architecture
- macOS 14.0 (Sonoma) or later.
- pymobiledevice3 as the primary backend, capable of supporting iOS 17 through 26+.
- Install via: pip3 install pymobiledevice3
- libimobiledevice as a optional fallback for broader device support.
- Install via: brew install libimobiledevice
- ideviceinstaller for app management (optional).
- ifuse for legacy mounting (not required when using pymobiledevice3).
- Phosphor automatically detects available tooling at launch and selects the best backend available.
Architecture and Design Principles
Phosphor is organized to be lightweight yet powerful, embracing a modular architecture that emphasizes maintainability and extensibility.
- Primary backend approach: pymobiledevice3 is used first, with a JSON-based interface designed to be forward-compatible with newer iOS versions.
- Fallback strategy: libimobiledevice serves as a dependable fallback when pymobiledevice3 is not present or unable to handle a given task.
- No C bindings: All operations are wrapped through subprocess calls to CLI tools, keeping dependencies simpler and easier to maintain.
- Direct SQLite parsing: iOS backup databases like Manifest.db and sms.db are parsed directly with system sqlite3, avoiding the need for external Swift dependencies.
- MVVM pattern: The codebase uses a clean separation of concerns—Services handle business logic, ViewModels manage UI state, and Views present a modular, declarative UI.
- Zero-external dependencies: Phosphor relies only on built-in system frameworks (SwiftUI, Foundation, sqlite3, UniformTypeIdentifiers), ensuring portability and ease of distribution.
iOS Backup Format and How Phosphor Reads Backups
Phosphor directly parses the structure Apple uses for iOS device backups, located under the user Library path:
- ~/Library/Application Support/MobileSync/Backup/
- Inside, you’ll find:
- Info.plist: device metadata
- Device-specific Manifest.plist: listing apps and data
- Manifest.db: an SQLite database mapping file IDs to their location and attributes
- Encryption status and backup state details
- Actual files stored in a two-character prefix directory layout
Understanding Manifest.db
- The Manifest.db contains a Files table with columns such as:
- fileID: the SHA-1 hash and the filename on disk
- domain: the data domain, for example CameraRollDomain or AppDomain-com.example.app
- relativePath: the original path within the domain
- flags: numeric indicators where 1 indicates a file, 2 a directory, and 4 a symlink
Phosphor leverages this database to present a filesystem-like browsing experience within backups, without modifying the actual backup data. This makes it possible to locate individual items or entire domains and extract them as needed.
Roadmap and Milestones
Phosphor’s development has tracked a comprehensive set of features and improvements. Notable milestones include:
- WhatsApp message parsing via ChatStorage.sqlite
- Apple Notes extraction through NoteStore.sqlite
- Call log viewing and export
- Safari bookmarks and history access
- Health data extraction (including various data types)
- Music and ringtone transfer via backup extraction and device installation
- Batch operations for Photos and Music
- Wi‑Fi device connection improvements through libimobiledevice network mode
- Encrypted backup browsing with devices such as iphone-backup-decrypt
- Drag-and-drop transfer improvements
- Localization into multiple languages (English, Arabic, Spanish, French, German, Japanese, Chinese)
- Apple Watch data access via paired iPhone backups
- Time Machine-style backup restore interfaces with 3D animation
- Scheduled automatic backups (hourly, daily, weekly, monthly) over USB or Wi‑Fi
- Portable backup archive format (.phosphor)
- Contacts and Calendar export in standard formats (vCard/CSV and ICS/CSV)
- Device-to-device transfer and cloning
- Full migration to pymobiledevice3 (72 shell calls across 13 services)
- Crash report viewer and process monitor
- Ringtone creator and HEIC-to-JPG conversion
- Backup progress indicators and robust backup cancellation
- Syslog termination improvements
- Encryption management for backups
- Voicemail browsing (not yet implemented in the current milestone set)
Troubleshooting and Common Scenarios
Phosphor’s documentation and user-facing troubleshooting guide address several frequent problems. Here are distilled insights and steps you can follow.
Backup directory and permissions
- By default, starting from version 1.0.4, backups are stored in ~/Documents/Phosphor Backups.
- If you previously used the system MobileSync location, Phosphor will detect those backups and pin that location as your override on first launch after upgrade. You can switch back to the default directory via Phosphor -> Settings -> Backup Directory -> Reset.
- If you encounter “Directory is not readable” or permission denied, ensure you’ve granted Full Disk Access to Phosphor, or switch the backup directory back to the default location. Granting Full Disk Access should be done only if you truly need Phosphor to read macOS’s shared backups.
Common error messages and their causes
- “Trust prompt missed” when connecting: ensure you unlock the device, select “Trust This Computer,” and enter your passcode before retrying the backup.
- “Stale pymobiledevice3”: iOS 17/18/26 require a recent version of the library; upgrade with: pip3 install --upgrade pymobiledevice3.
- “Binary not on PATH”: the GUI app needs to locate pymobiledevice3; Phosphor probes common paths (pipx, Homebrew, and user bin). If you installed elsewhere, place a symlink in one of these directories.
- “Missing Python dependencies”: run pip3 install --upgrade --force-reinstall pymobiledevice3 to repair partial installs.
- “Pairing record mismatch”: re-run pymobiledevice3 lockdown pair in Terminal, accept the Trust prompt, and retry.
Contributing and Community
Phosphor welcomes contributions from developers who share the goal of providing a free, open-source solution for iOS device management. If you’re interested in contributing:
- Review guidelines in CONTRIBUTING.md to get started with development and code contribution practices.
- Contribute features, fixes, test cases, or localization updates.
- Acknowledge the core dependencies that keep the project functional: pymobiledevice3, libimobiledevice, ifuse, and Apple SF Symbols for iconography.
Credits and Licensing
- pymobiledevice3: Pure Python implementation of Apple’s mobile device protocols (primary backend)
- libimobiledevice: Cross-platform library for iOS device communication (fallback)
- ifuse: FUSE-based filesystem interface for iOS devices (legacy integration)
- Apple’s SF Symbols used for iconography
License: MIT
Investing in a Free and Open Experience
Phosphor represents a deliberate approach to bring the power of iOS device management into a free, open-source macOS app. By designing around a minimal, robust architecture, it aims to remain accessible to developers and power users alike while offering a comprehensive feature set that rivals paid tools in many areas. The project’s emphasis on backends, backup formats, and data extraction reflects a thoughtful balance between capability and maintainability.
From a user’s perspective, Phosphor’s strengths lie in:
- A native macOS experience with a clean, SwiftUI-based interface.
- Deep access to backups and on-device data without cloud dependencies.
- Flexible installation options, including Homebrew-based workflows and manual builds for advanced users.
- A modular backend strategy that prioritizes pymobiledevice3 but gracefully falls back to libimobiledevice when needed.
- A transparent data model for backups based on the iOS backup format, enabling predictable data access.
Practical Tips for First-Time Use
- Prepare your Mac with the latest macOS 14+ updates and ensure Xcode command-line tools are installed if you plan to build from source.
- Install pymobiledevice3 through the recommended method to ensure compatibility with iOS versions in the 17–26+ range.
- When you first connect a device, allow Trust prompts on the device and authorize the connection on your Mac to establish a reliable channel for data transfer.
- Consider enabling backup encryption where appropriate to protect sensitive data, and remember your passphrase if you plan to restore later.
- If you rely on backups frequently, take advantage of Time Machine-style restore and scheduled backups to maintain up-to-date archives.
Navigating the Interface: What to Expect
Phosphor’s UI is organized around features and data flows that mirror the real-world workflows of users who manage devices and data:
- A device-centric dashboard from which you can initiate backups, view device info, and start diagnostics.
- A backup browser that presents domains (Camera Roll, Apps, System, etc.) as navigable sections, with a search function to locate specific files or artifacts.
- A messages viewer with a chat-like interface for iMessage and SMS conversations, including export options and all-conversations export.
- A file system browser that allows web-like navigation and direct file transfers via drag-and-drop.
- A diagnostics panel that shows battery, storage, and system logs, with tools to export or filter data.
- The Time Machine-like backup viewer and the 3D animation for an engaging visual restore experience.
Roadmap: What’s Next and What Has Been Accomplished
The project has a detailed list of completed items (checked boxes) and a few future items (pending). Completed milestones include:
- WhatsApp message parsing, Apple Notes extraction, call log browsing, Safari bookmarks/history, and health data extraction.
- Music and ringtone transfer from backups, batch operations, and Wi-Fi device connection improvements.
- Encrypted backups browsing, drag-and-drop transfers, localization, and Apple Watch data access.
- Time Machine-style restore, time-based backups scheduling, portable .phosphor archive support, and contact/calendar exports.
- Device-to-device cloning and a move toward a full pymobiledevice3 migration.
There is typically room for ongoing work, such as Voicemail browsing, depending on priorities and community contributions.
Final Thoughts
Phosphor embodies a practical philosophy: deliver a modern, open-source macOS app that provides deep access to iOS device data without the consumer-level cost or lock-in of proprietary tools. It takes established backends, a robust backup parsing strategy, and a modular architecture to offer a capable, future-ready solution for power users, developers, and enthusiasts who want trustworthy control over their devices.
If you’re curious to explore this project, you can start by visiting the GitHub releases for the latest build, or check the website for documentation, installation instructions, and contribution guidelines. And if you’re already using Phosphor, share your experience to help improve the tool for the broader user community.
Images used in this post
- Phosphor banner at the top to set the brand’s visual tone.
- Phosphor icon displayed prominently to reinforce brand identity.
References and acknowledgments
- The project description and feature set above faithfully reflect the Phosphor repository’s README content and its structured overview of capabilities, installation paths, architectural decisions, backup formats, troubleshooting guidance, and roadmap status.
- All feature descriptions are organized to provide practical, user-facing information with a focus on real-world workflows and data management tasks.
Download and try Phosphor today
- Get the latest release from: https://github.com/momenbasel/Phosphor/releases/latest
- Learn more about the project: https://momenbasel.github.io/Phosphor/
This detailed overview should give you a clear sense of Phosphor’s scope, capabilities, and how it’s designed to fit into a modern macOS workflow for iOS device management. Whether you’re performing backups, extracting messages, or browsing app data, Phosphor aims to be a transparent, capable companion for macOS users who want more control over their iOS ecosystem.
Enjoying this project?
Discover more amazing open-source projects on TechLogHub. We curate the best developer tools and projects.
Repository:https://github.com/momenbasel/Phosphor
GitHub - momenbasel/Phosphor: Phosphor
Phosphor is an open-source iOS device manager for macOS, built with SwiftUI, offering full control over iPhone, iPad, and iPod touch without proprietary softwar...
github - momenbasel/phosphor