feat: phase 5 — mobile-to-mobile (iPhone → Android over OTG) #6

Open
opened 2026-05-15 04:53:53 +00:00 by hartle-tech · 0 comments
hartle-tech commented 2026-05-15 04:53:53 +00:00 (Migrated from github.com)

S01E15 — Sockless No More

Backup an iPhone directly to an Android phone via USB-C OTG, no laptop in the loop.

Why

Travelers, journalists, anyone without their main machine. The iPhone Pro Max camera burns through 500 GB/month for some users; offloading on the road to an Android phone with a microSD or external SSD is a real workflow.

Scope

  • Native Android app written in Kotlin / Jetpack Compose.
  • USB host-mode access to the iPhone via libusb + a Kotlin/JNI binding (or pure-Kotlin AFC implementation — research needed).
  • The pull engine semantics from `internal/backup` re-implemented in Kotlin. (Or expose the Go engine as a shared library and call from Android.)
  • UI: same v2 brand identity, adapted to Compose Material 3 with the DumpSock palette.

Out of scope for v1

  • Android → iPhone direction.
  • Pulling to cloud storage from Android.

Acceptance

  • Android app installed via APK from GitHub Releases (sideload via Sideloadly Android or direct .apk install).
  • Plug iPhone into Android via USB-C cable, tap "Trust" on iPhone, app discovers iPhone, dumps to Android storage.
  • All Phase 1 CLI flags' behavior replicated (since-until, delete-after, dedup, etc.).
## S01E15 — *Sockless No More* Backup an iPhone directly to an Android phone via USB-C OTG, no laptop in the loop. ## Why Travelers, journalists, anyone without their main machine. The iPhone Pro Max camera burns through 500 GB/month for some users; offloading on the road to an Android phone with a microSD or external SSD is a real workflow. ## Scope - Native Android app written in Kotlin / Jetpack Compose. - USB host-mode access to the iPhone via libusb + a Kotlin/JNI binding (or pure-Kotlin AFC implementation — research needed). - The pull engine semantics from \`internal/backup\` re-implemented in Kotlin. (Or expose the Go engine as a shared library and call from Android.) - UI: same v2 brand identity, adapted to Compose Material 3 with the DumpSock palette. ## Out of scope for v1 - Android → iPhone direction. - Pulling to cloud storage from Android. ## Acceptance - Android app installed via APK from GitHub Releases (sideload via Sideloadly Android or direct .apk install). - Plug iPhone into Android via USB-C cable, tap \"Trust\" on iPhone, app discovers iPhone, dumps to Android storage. - All Phase 1 CLI flags' behavior replicated (since-until, delete-after, dedup, etc.).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
hartle-tech/dumpsock#6
No description provided.