>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Swift

Zo bekijk je de inhoud van een iPhone-backup zonder betaalde tools

Phosphor Banner

Als je ooit hebt geprobeerd een specifieke chat uit een iPhone-backup te halen of gewoon wilde zien welke bestanden er in een backup zijn opgeslagen, ben je waarschijnlijk tegen de beperkingen van Apple's standaardtools aangelopen. Finder maakt back-ups op basis van "alles of niets". Of je herstelt de volledige image naar je telefoon met het risico dat je recente gegevens overschrijft, of je betaalt ongeveer €50 per jaar voor zoiets als iMazing.

Ik ben onlangs het Phosphor-project tegengekomen van ontwikkelaar Momen Basel. Het is een native macOS-client met opensourcecode onder de MIT-licentie die vrijwel alle iOS-beheertaken afhandelt zonder abonnementen of iCloud-afhankelijkheid.


Wat de app kan doen

Phosphor neemt de routinematige taken voor zijn rekening die voorheen het gebruik van betaalde software of het compileren van command-line utilities uit broncode vereisten.

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

Backup-parsing en navigatie

De belangrijkste functie van Phosphor is het werken met lokale backups. Het opent Manifest.db, leest SQLite-databases en organiseert gegevens in vertrouwde categorieën: foto's, berichten, bijlagen, systeembestanden.

Wat prettig is, is dat de app out-of-the-box werkt met versleutelde backups. Phosphor ontsleutelt gegevens standaard met PBKDF2- en AES-256-CBC-algoritmen, zonder workarounds of het aanroepen van externe Python-scripts. Je voert je wachtwoord één keer in, het programma bewaart de sleutel in het geheugen voor de sessie, of slaat het op in macOS Keychain als je het vakje inschakelt.

Berichten en media exporteren

Als je berichten uit iMessage of SMS moet extraheren, toont Phosphor conversatiedraden in een vertrouwde interface met blauwe en grijze bubbles. Dialogen kunnen in verschillende formaten worden geëxporteerd:

  • HTML met behouden messenger visuele opmaak
  • Schone JSON of CSV voor verdere parsing en analyse
  • Platte TXT

Dezelfde extractie werkt voor WhatsApp-database (ChatStorage.sqlite), Apple Notes, contacten in vCard-formaat en agenda-evenementen in .ics.

IPA-installatie en directe bestandstoegang

Via het Apple File Conduit (AFC)-protocol kun je door de bestandsstructuur van het apparaat bladeren zonder FUSE-schijven in het systeem te hoeven mounten. Je kunt in app-sandboxes kijken (Documents, Library, tmp-mappen), bestanden vandaar kopiëren met eenvoudig drag-and-drop, of snel .ipa naar een verbonden test-iPhone pushen.

Hardwarediagnostiek en logboekweergaven

Ontwikkelaars en testers vinden het diagnostische gedeelte nuttig. Phosphor leest in realtime:

  • Precieze batterijstatus: fabrieks- en werkelijke capaciteit in mAh, laadcyclus Telling en huidige temperatuur.
  • Gedetailleerde opslagverdeling per categorieën.
  • Systeemlogboekstream (syslog) met kleurmarkering van logniveaus (Error, Warning, Debug) en filtering.
  • Crasrapporten en lijst met actieve processen op het apparaat.

Technische details onder de motorkap

Phosphor is geschreven in Swift 5.9 en SwiftUI voor macOS 14 Sonoma en nieuwer. De auteur heeft verschillende interessante architectuurkeuzes gemaakt die de app snel maken en geen berg onnodige afhankelijkheden meeslepen.

  1. Twee backends om uit te kiezen. De belangrijkste engine is de pymobiledevice3-bibliotheek, die huidige iOS-versies ondersteunt inclusief recente releases. Als deze om welke reden dan ook niet beschikbaar is, schakelt de interface automatisch over naar de klassieke libimobiledevice.
  2. Geen C-bindings. In plaats van complexe compilatie van C-bibliotheken binnen het project, communiceert de logica via subprocess met command-line utilities. Dit vereenvoudigt het onderhoud van het project.
  3. Directe SQLite-parsing via systeembibliotheken. Geen third-party Swift-pakketten voor het lezen van databases — Phosphor gebruikt het native systeem sqlite3.
  4. Veilige back-upopslag. Vanaf versie 1.0.4 slaat Phosphor kopieën op naar ~/Documents/Phosphor Backups. Dit isoleert ze van de standaardback-ups van Finder en vereist geen volledige schijftoegang voor de app.

Hoe te installeren en uit te voeren

De snelste manier om de app te deployen is via Homebrew Cask:

brew tap momenbasel/phosphor
brew install --cask phosphor

De belangrijkste backend vereist het installeren van pymobiledevice3:

brew install pipx
pipx install pymobiledevice3

Als je de app handmatig wilt bouwen vanuit de repository:

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

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

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

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

Bij het voor de eerste keer aansluiten van je telefoon via kabel moet je het scherm ontgrendelen en op "Deze computer vertrouwen" tikken.


Conclusie

Phosphor blijkt een handig hulpmiddel te zijn voor wie af en toe specifieke bestanden uit een iPhone moet halen, batterijslijtage wil controleren, of een werkend archief van berichten wil exporteren.

Wie heeft baat bij dit project:

  • Mac-bezitters die niet willen betalen voor logge proprietaire software om maar een paar keer per jaar te exporteren.
  • QA-engineers en iOS-ontwikkelaars voor het snel verzamelen van cras logs, controleren van app-databases en monitoren van syslog.
  • Mensen die berichten- en contactarchieven lokaal opslaan zonder afhankelijk te zijn van de cloud.

De broncode staat op GitHub onder de MIT-licentie, het project wordt actief onderhouden en het vervangt gemakkelijk de basisscenario's van betaalde apparaatbeheerders.

Gerelateerde projecten