Cross-platform recovery · Flutter + Rust

Bring your lost files back.

Deleted photos, formatted USB drives, videos on a camera card — ssd scans, previews and recovers them. The source is opened read-only; not a single byte is written back.

Read-only source Zero outbound engine Chinese / English UI

Android and Linux builds are available now; Windows / macOS are packaged by CI on demand.

ssd mascot: a blue shield holding a recovered file with a green check mark FAT · exFAT · NTFS ext4 · f2fs · APFS JPEG · PNG · MP4 · PDF
6file-system engines
4UI pages
135IPC contract golden cases
3network touchpoints, all explained

Why ssd

Recovery starts with “do no harm”

Read-only is not a slogan. From the type system to the export worker, every layer exists to keep writes away from the source device.

Read-only by construction

BlockDevice exposes no write method. Write capability lives only in the separate xd-writer binary, pinned by two structural gates: the write-surface manifest and the binary symbol table.

Local first

The engine makes zero outbound connections. The client has exactly three network touchpoints: update check, first-run trial time anchor, and activation time check. All are explainable and carry no machine identifier.

Honest recovery

Every result carries a quality grade: complete, possibly damaged, or carved-only. If the data is incomplete, the app says so instead of calling a guess a successful recovery.

Six file systems

FAT, exFAT, NTFS, ext4, f2fs and APFS cover USB drives, camera cards, external disks and desktop drives. APFS also supports snapshot recovery.

Exports that never write through

Exports run in a separate dropped-privilege worker with three destination checks: different device, no overwrite, free space. It never writes back to the source and never deletes an existing file in the destination.

Pro capabilities

Disk images, a sector editor, batch jobs and xd-cli. The write path follows the same two-phase commit and audit discipline as the GUI — no back door from the command line.

Workflow

From connection to recovery in four steps

A device, a folder, or an iOS backup can all be a source. Every step can be paused, cancelled, or stopped to preview first.

Pick a source

Plug in a USB drive or camera card, choose any folder, or import an iTunes / Finder local backup.

Scan

Quick scan reads file-system metadata; deep scan carves by file signature; ext4 supports a scoped subtree.

Preview

Chunked reads, never whole-file loads. Image, text and info-card views let you confirm before recovery.

Recover

Choose a destination, pass three checks, export item by item; directory sources keep their tree, with a final count and per-file report.

Support matrix

One engine across desktop and mobile

“Available (untested on real hardware)” means code and CI smoke tests pass, while the physical-device path still needs manual verification. We mark it instead of overclaiming.

PlatformDeliveryStatus
AndroidAPK (universal / arm64) · AABSideload works; root block-device scan not connected
Linuxdeb (GUI + engine)Available (untested on real hardware)
WindowsPortable zip (CI on demand)Available (untested on real hardware)
macOSzip (CI on demand, arm64 / x64)Available (untested on real hardware)
iOSBackup import / parseSynthetic samples; real backups pending

Capability boundary: ssd does not provide root functionality and does not modify your system. Storage partitions are accessed read-only. On Android 10+ (FBE), the content of deleted files usually cannot be recovered; recovery focuses on file names and metadata.

Latest release

v1.0.3 · all-in-one deb

After sudo dpkg -i ssd_1.0.3_amd64.deb, the desktop app is ready: the GUI lands in /opt/ssd, the menu entry and icon ship in the package, and the engine binaries plus polkit / udev rules are unchanged. This release also restores per-version verify-code key rotation.

  • All-in-one deb: after install, search “ssd” in the app menu
  • Verify-code key rotates every release; v1.0.3 key is embedded, private key stays offline
  • Version 1.0.3 / versionCode 19; contract stays at 135 golden cases

Project mascot

Twelve faces of the shield

It is a shield that helps you find lost files. Twelve animated expressions appear across the app: loading, empty states, errors and the about page.

Each SVG carries its own expression and motion, and respects prefers-reduced-motion. The back-to-top button in the corner is the mascot too.

Sister projects

More open-source work by the author

A multi-language “annotations become docs” ecosystem: PHP / Rust / Go servers plus a static Vue 3 front end.

Like the project? You can buy the shield a coffee. WeChat / Alipay QR codes are on the tip page; completely optional.

ssd mascot: cute

Get the data back first. Everything else can wait.

Download v1.0.3, or build from source. Every recovery starts read-only.