Your phone holds years of contacts, messages, and call history. Getting that data out shouldn't require:
- Cloud accounts you don't trust
- Expensive backup software
- Technical knowledge of ADB commands
- Sending your personal data through third-party servers
PhoneSync creates a direct, encrypted connection between your Android phone and your computer over your local WiFi network. No cloud. No accounts. No middleman.
βββββββββββββββ WiFi (TLS) βββββββββββββββ
β Android β ββββββββββββββββββββββββΊ β Desktop β
β (Server) β PIN Authentication β (Client) β
βββββββββββββββ βββββββββββββββ
β
βΌ
βββββββββββββββ
β .xlsx β
β Export β
βββββββββββββββ
| You should use PhoneSync if... | You probably don't need this if... |
|---|---|
| You want a local backup of phone data | You're happy with Google/Samsung backup |
| You need data in Excel for analysis | You just need contact sync |
| You distrust cloud backup services | You don't mind third-party access |
| You're migrating phones and want records | You've never needed your SMS history |
| Data Type | Fields |
|---|---|
| Contacts | Name, all phone numbers, emails |
| SMS | Sender/recipient, message body, timestamp, type (sent/received) |
| Call Log | Number, duration, timestamp, type (incoming/outgoing/missed) |
- Prefix Filter: Flexible allow/disallow prefix rules for any country or number format
- Allow prefixes: Include only numbers starting with specific patterns (e.g.,
010,+1,02) - Exclude prefixes: Skip numbers starting with specific patterns (e.g.,
1588,080) - Quick presets for Korean Mobile, Korean All, US/Canada
- Allow prefixes: Include only numbers starting with specific patterns (e.g.,
- Date Range: Export only messages/calls after a specific date
- Selective Export: Choose which data types to include
- PIN Pairing: 6-digit code expires in 5 minutes
- TLS Encryption: All data transferred over HTTPS
- Local Network: Never leaves your WiFi
- No Persistence: Android app holds no exported data
Get the latest release from GitHub Releases:
| Platform | Download |
|---|---|
| Android | phonesync-android-x.x.x.apk |
| Windows | phonesync-windows-x.x.x.zip |
| Linux | phonesync-linux-x.x.x.tar.gz |
macOS: Requires local build (Apple Developer certificate needed for distribution). See Building from Source.
- Android phone (API 23+ / Android 6.0+) β iOS is not supported
- Windows or Linux computer (macOS requires local build)
- Both devices on the same WiFi network
- Install the Android app on your phone
- Install the Desktop app on your computer
- Grant permissions when prompted on Android (Contacts, SMS, Phone)
- Enter the PIN shown on your phone into the desktop app
- Export β select what you want and save to Excel
phone-sync/
βββ apps/
β βββ android_provider/ # Flutter Android app (HTTPS server)
β β βββ lib/
β β β βββ services/ # Contacts, SMS, Call extraction
β β β βββ providers/ # Riverpod state management
β β β βββ screens/ # UI
β β βββ ...
β β
β βββ desktop_client/ # Flutter desktop app (HTTPS client)
β βββ lib/
β β βββ services/ # mDNS discovery, sync, export
β β βββ providers/ # Session, export state
β β βββ screens/ # Discovery, pairing, home
β βββ ...
- Framework: Flutter 3.x
- State: Riverpod 2.x
- Server: Shelf (self-signed TLS)
- Discovery: mDNS/DNS-SD via
nsdpackage - Export:
excelpackage for .xlsx generation
# Clone
git clone https://github.com/jaycho1214/phone-sync.git
cd phone-sync
# Android
cd apps/android_provider
flutter pub get
flutter build apk --release
# Desktop (Windows)
cd apps/desktop_client
flutter pub get
flutter build windows --release
# Desktop (Linux)
flutter build linux --release
# Desktop (macOS) - requires local build
flutter build macos --releaseQ: Why does the Android app run a server instead of the desktop?
Mobile networks and firewalls make incoming connections to desktops unreliable. Running the server on Android with mDNS advertisement ensures the desktop can always find and connect to the phone.
Q: Is my data safe?
Your data never leaves your local network. The connection uses TLS encryption with a self-signed certificate. The PIN ensures only your desktop can connect.
Q: Why Excel format?
Excel (.xlsx) is universally readable, works offline, and lets you sort/filter/search your data however you want. No proprietary format lock-in.
Q: Can I export incrementally?
Yes. Use the date filter to export only new messages/calls since your last export.
Q: Why no macOS release?
Apple requires a $99/year Developer certificate to distribute macOS apps. You can build locally using flutter build macos --release.
PhoneSync β Your data. Your network. Your file.
