Jak zajrzeć do kopii zapasowej iPhone'a bez płatnych narzędzi

Jeśli kiedykolwiek próbowałeś wyodrębnić konkretną rozmowę z kopii zapasowej iPhone'a lub po prostu chciałeś zobaczyć, jakie pliki są przechowywane w kopii zapasowej, prawdopodobnie natknąłeś się na ograniczenia standardowych narzędzi Apple. Finder wykonuje kopię zapasową na zasadzie „wszystko albo nic”. Albo przywracasz cały obraz na telefon z ryzykiem nadpisania świeżych danych, albo płacisz około 50 dolarów rocznie za coś takiego jak iMazing.
Ostatnio natknąłem się na projekt Phosphor autorstwa programisty Momena Basela. To natywny klient macOS z kodem źródłowym na licencji MIT, który obsługuje niemal wszystkie zadania związane z zarządzaniem iOS bez subskrypcji ani zależności od iCloud.
Co potrafi aplikacja
Phosphor zajmuje się rutynowymi zadaniami, które wcześniej wymagały posiadania płatnego oprogramowania lub kompilowania narzędzi wiersza poleceń ze źródeł.
+-------------------------------------------------------------+
| Phosphor (macOS 14+ / SwiftUI) |
| ├── Бэкапы (полные, инкрементальные, просмотр Manifest.db) |
| ├── Экспорт iMessage, WhatsApp, заметок и контактов |
| ├── Просмотр файловой системы через AFC |
| └── Диагностика (батарея, стриминг syslog, краш-репорты) |
+-------------------------------------------------------------+
│ │
▼ (primary) ▼ (fallback)
[pymobiledevice3] [libimobiledevice]
Analiza i nawigacja po kopiach zapasowych
Główną funkcją Phosphora jest praca z lokalnymi kopiami zapasowymi. Otwiera Manifest.db, odczytuje bazy danych SQLite wewnątrz i organizuje dane w znajome kategorie: zdjęcia, wiadomości, załączniki, pliki systemowe.
Co warte uwagi, aplikacja obsługuje szyfrowane kopie zapasowe od razu po wyjęciu z pudełka. Phosphor natywnie odszyfrowuje dane przy użyciu algorytmów PBKDF2 i AES-256-CBC, bez obejść ani wywoływania zewnętrznych skryptów Pythona. Hasło wprowadza się raz, program przechowuje klucz w pamięci na czas sesji lub zapisuje w macOS Keychain, jeśli zaznaczysz odpowiednie pole.
Eksport wiadomości i mediów
Jeśli musisz wyodrębnić wiadomości z iMessage lub SMS, Phosphor wyświetla wątki rozmów w znajomym interfejsie z niebieskimi i szarymi balonikami. Rozmowy można eksportować w różnych formatach:
- HTML z zachowanym wizualnym stylem komunikatora
- Czysty JSON lub CSV do dalszego przetwarzania i analizy
- Zwykły TXT
Ta sama ekstrakcja działa dla bazy danych WhatsApp (ChatStorage.sqlite), Notatek Apple, kontaktów w formacie vCard oraz zdarzeń kalendarza w formacie .ics.
Instalacja IPA i bezpośredni dostęp do plików
Dzięki protokołowi Apple File Conduit (AFC) narzędzie pozwala przeglądać strukturę plików urządzenia bez konieczności montowania dysków FUSE w systemie. Możesz zajrzeć do piaskownic aplikacji (Documents, Library, foldery tmp), kopiować stamtąd pliki prostym przeciągnięciem i upuszczeniem lub szybko wysłać .ipa na podłączony testowy iPhone.
Diagnostyka sprzętu i przeglądanie logów
Deweloperzy i testerzy docenią sekcję diagnostyczną. Phosphor odczytuje w czasie rzeczywistym:
- Dokładny stan baterii: fabryczną i rzeczywistą pojemność w mAh, liczbę cykli ładowania oraz aktualną temperaturę.
- Szczegółowy podział pamięci masowej według kategorii.
- Strumień logów systemowych (syslog) z kolorowym wyróżnianiem poziomów logowania (Error, Warning, Debug) i filtrowaniem.
- Raporty o awariach i listę aktywnych procesów na urządzeniu.
Szczegóły techniczne pod maską
Phosphor jest napisany w Swift 5.9 i SwiftUI dla macOS 14 Sonoma i nowszych. Autor podjął kilka interesujących decyzji architektonicznych, które sprawiają, że aplikacja jest szybka i nie ciągnie za sobą góry niepotrzebnych zależności.
- Dwa backendy do wyboru. Główny silnik to biblioteka
pymobiledevice3, która obsługuje bieżące wersje iOS, w tym najnowsze wydania. Jeśli z jakiegoś powodu jest niedostępna, interfejs automatycznie przełącza się na klasycznylibimobiledevice. - Brak powiązań z C. Zamiast złożonej kompilacji bibliotek C w projekcie, logika komunikuje się z narzędziami wiersza poleceń przez subprocess. Upraszcza to utrzymanie projektu.
- Bezpośrednie parsowanie SQLite przez biblioteki systemowe. Brak zewnętrznych pakietów Swift do odczytu baz danych — Phosphor używa natywnego systemowego
sqlite3. - Bezpieczne przechowywanie kopii zapasowych. Począwszy od wersji 1.0.4, Phosphor zapisuje kopie w
~/Documents/Phosphor Backups. Izoluje to je od standardowych kopii zapasowych Findera i nie wymaga udzielania aplikacji pełnego dostępu do dysku.
Jak zainstalować i uruchomić
Najszybszy sposób wdrożenia aplikacji to Homebrew Cask:
brew tap momenbasel/phosphor
brew install --cask phosphor
Główny backend wymaga zainstalowania pymobiledevice3:
brew install pipx
pipx install pymobiledevice3
Jeśli chcesz zbudować aplikację ręcznie z repozytorium:
# Клонируем репозиторий
git clone https://github.com/momenbasel/Phosphor.git
cd Phosphor
# Собираем релизный бинарник
swift build -c release
# Упаковываем в .app бандл
bash Scripts/build.sh
# Запускаем собранный клиент
open .build/Phosphor.app
Przy pierwszym podłączeniu telefonu kablem musisz odblokować ekran i nacisnąć „Ufaj temu komputerowi".
Podsumowanie
Phosphor okazał się poręcznym narzędziem dla tych, którzy od czasu do czasu potrzebują wyodrębnić konkretne pliki z iPhone'a, sprawdzić zużycie baterii lub wyeksportować działające archiwum wiadomości.
Kto znajdzie ten projekt przydatny:
- Użytkownicy Maca, którzy nie chcą płacić za rozbudowane oprogramowanie własnościowe tylko po to, żeby wykonać kilka eksportów w roku.
- Inżynierowie QA i deweloperzy iOS do szybkiego zbierania logów awarii, sprawdzania baz danych aplikacji i monitorowania syslog.
- Ci, którzy przechowują archiwa wiadomości i kontaktów lokalnie bez polegania na chmurze.
Kod źródłowy znajduje się na GitHubie na licencji MIT, projekt jest aktywnie rozwijany i z łatwością zastępuje podstawowe scenariusze płatnych menedżerów urządzeń.
Powiązane projekty