iPhone Rescue

Your iPhone backup. Recovered, untouched.

Photos, videos, messages. Even when Manifest.db is corrupt, every file is identified and retrieved from the raw bytes.

iPhone Rescue
iPhone Rescue
Overview
Messages
Fragment rescue
Integrity check
Original-quality export
Albums
All photos
Ordered by capture date

Every album, by capture date.

HEIC converts on the fly for preview. Exports keep the original HEIC bytes and EXIF. Videos preserve QuickTime metadata.

iPhone Rescue

Native bubble view.

Full conversations, image and video attachments, iOS 14+ attributedBody bodies — a 100% match against the raw text column.

iPhone Rescue
Hi — are you there?
Could you send me that photo set from last time?
Thanks 👍

Broken Manifest? Still recoverable.

Bypass the database. Identify JPEG, HEIC, MOV, SQLite, plist, and PDF by header magic bytes, then export by type.

Fragment rescue
Scan complete
Schematic
TypeCountTotal size
heic— GBExport ›
jpeg— GBExport ›
mov— GBExport ›
png— GBExport ›
sqlite— MBExport ›

See the damage at a glance.

SQLite PRAGMA integrity_check, plus the count Manifest claims against what actually exists on disk.

iPhone Rescue
Databases
Manifest.dbCorrupt
Photos.sqliteHealthy
sms.dbHealthy

Not a single byte changed.

Original filenames, original EXIF, mtime set to capture time. Already-exported files are skipped. Resume anywhere.

iPhone Rescue
Progress
Schematic
Exporting···
~/Desktop/rescued/…

Past the broken index.
Straight to the raw bytes.

An iOS backup renames every file to its SHA1 hash, dropped into <root>/xx/ subdirectories. The original names and capture dates all live inside Manifest.db. Corrupt that database and ordinary tools stop working — but the bytes themselves are still intact.

Recognized by magic bytes

Read the first 32 bytes of each blob. JPEG starts with FF D8 FF. PNG with 89 50 4E 47. HEIC has an ftyp box at byte 4 followed by the heic brand. SQLite begins with SQLite format 3.

No guessing. No inference. If it matches, it gets classified. If not, it is marked "other", with the raw bytes preserved.

Example output · schematic
$ iphone-rescue scan  ./Backup

  Manifest.db ............... corrupt
  Photos.sqlite ............. ok
  sms.db .................... ok

  blobs on disk ............. xxxx
  blobs recognised .......... xxxx

  heic      ···     ·· GB
  jpeg      ···     ·· GB
  mov       ···     ·· GB
  png       ···     ·· GB
  sqlite    ···     ·· MB
  plist     ···     ·· MB
100%
Runs locally. No servers.
0 KB
Sent over any outside network.
3
Desktop platforms (macOS / Windows / Linux).
Read-only
Never writes to your source backup.

Quietly at work.

An interface that gets out of the way, built for tens of thousands of photos.

Overview
iPhone Rescue
Albums
Messages
Fragment rescue
Integrity check
Original-quality export
Device
iPhone 14 Pro
Backup overview · schematic
Device
iPhone 14 Pro
System
iOS 18
Last backup
Most recent
Backup size
— GB
Integrity
— / — pass
Identified
— items
Overview
Device info, integrity, quick actions — one screen.
Albums
iPhone Rescue
Overview
Messages
Fragment rescue
Integrity check
Original-quality export
Albums
All photos
Ordered by capture date
Albums
A continuous stream by capture date. HEIC converts on the fly.
Messages
iPhone Rescue
Overview
Albums
Fragment rescue
Integrity check
Original-quality export
Conversation
with Mom
iMessage · — messages
Hi — are you there?
Could you send me that photo set from last time?
Thanks 👍
Messages
iMessage bubble view, attachments included.
Fragment rescue
iPhone Rescue
Overview
Albums
Messages
Integrity check
Original-quality export
Fragment rescue
Grouped by type
Preview, then export
TypeCountTotal size
heic— GBExport ›
jpeg— GBExport ›
mov— GBExport ›
png— GBExport ›
sqlite— MBExport ›
Fragment rescue
Grouped by file type. Preview, then export.

Schematic UI. Real screenshots ship with the release build.

Specs

Platforms
macOS 12+ (Apple Silicon / Intel) · Windows 10+ (x64) · Linux (x86_64)
Backup format
iTunes / Finder unencrypted backups (iOS 8 to latest)
Reads
Manifest.db · Photos.sqlite · sms.db · raw blob directory
Image formats
HEIC / HEIF · JPEG · PNG · GIF (HEIC converts to JPG for preview only; exports keep the original bytes)
Video formats
MOV / MP4 / M4V / WebM (byte-for-byte export)
Install size
Under 35 MB on macOS, Windows, and Linux .deb
Network
Loopback (127.0.0.1) only. No telemetry. No auto-update checks.
Data handling
Runs entirely on your machine. The source backup is read-only — not a single byte is modified.

Download now.

Three platforms. Native builds.

Every release ships with SHA-256 checksums so you can verify file integrity after downloading.

Frequently asked

Does the app go online?+

No. The backend only binds to 127.0.0.1. No telemetry, no analytics, no auto-update checks. Works fully offline.

Will it modify my original backup?+

No. Every SQLite connection uses mode=ro&immutable=1. All file operations are read-only. Caches are written to the app's own data directory.

Are encrypted backups supported?+

Not in this release. For now, encryption has to be turned off in iTunes or Finder and the backup remade.

Is it slow on very large backups?+

No. Albums load lazily, 120 per page, with thumbnails generated on demand and cached. Fragment rescue uses a streaming scan.

Why a desktop app?+

Backups are tens to hundreds of gigabytes. There is no sensible reason to upload that to any cloud service. A local desktop app is the only form that fits — offline-capable, nothing leaves your machine.

How do I verify a release?+

Every release ships with SHA-256 checksums. After downloading, verify in a terminal with shasum (macOS / Linux) or certutil (Windows) to confirm the file was not tampered with or corrupted in transit.