Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

19 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ“· SonyTransfer

Lightweight Android app to transfer photos from Sony cameras via WiFi.

Built as a drop-in replacement for Sony's Imaging Edge Mobile (IEM), which has critical background crash bugs that make it unusable on modern Android devices.

✨ Features

  • πŸ“‚ Browse all photos and videos on SD card with thumbnails
  • β˜‘οΈ Multi-select batch download
  • ⬇️ Per-file progress during download
  • πŸ’Ύ Saves to DCIM/SonyTransfer (visible in gallery)
  • 🎬 Streaming download β€” supports 2GB+ videos without OOM
  • πŸ“Ά WiFi gateway auto-connect β€” reads camera IP from DHCP
  • πŸ“‘ WiFi network binding β€” works correctly even with mobile data enabled
  • πŸ”“ No internet required β€” runs entirely over camera's local WiFi

πŸ“± Supported Cameras

Any Sony camera that supports "Send to Smartphone" mode (PTP/IP over WiFi, port 15740), including:

  • ZV-E10 (original, firmware v2.02) β€” primary target & test platform
  • ZV-1, ZV-1F
  • Ξ±6000 series, Ξ±6100, Ξ±6300, Ξ±6400, Ξ±6500, Ξ±6600
  • Ξ±7 series (I/II/III), Ξ±7R series, Ξ±7S series
  • Ξ±9 series
  • RX100 series, RX10 series
  • And many more Sony cameras with "Send to Smartphone" feature

Note: ZV-E10 II and newer cameras that use Creators' App may not need this tool.

Note: ZV-E10 II and newer cameras that use Creators' App may not need this tool.

πŸ“š Third-Party Libraries

This project incorporates source code from the following library:

  • libptp β€” Java implementation of PTP/IP protocol (ISO 15740).
    Copyright (C) 2017 Fimagena (fimagena at gmail dot com).
    Licensed under the GNU Lesser General Public License v2.1 (see libptp-LGPL-2.1.txt).
    libptp source files are located in app/src/main/java/com/fimagena/libptp/.

The library has been modified to support streaming file transfers (see AGENTS.md for details). All modifications are released under LGPL 2.1 as required by the license.

πŸš€ Usage

  1. On camera: Menu β†’ Network β†’ Send to Smartphone (or "Ctrl w/ Smartphone")
  2. On phone: Connect to the camera's WiFi network (DIRECT-xxxx-ZV-E10)
  3. Open SonyTransfer β†’ tap "Connect to Camera"
  4. Browse & select photos β†’ tap "Download"
  5. Photos saved to DCIM/SonyTransfer πŸŽ‰

πŸ“¦ Download

Go to Actions β†’ click the latest successful build β†’ download SonyTransfer-APK from Artifacts.

πŸ› οΈ Technical Details

Protocol Stack

Phone ←WiFiβ†’ Camera (AP mode)
         ↓
    DHCP Gateway IP (192.168.122.1)
         ↓
    PTP/IP Protocol (ISO 15740, port 15740)
    β”œβ”€β”€ OpenSession
    β”œβ”€β”€ GetStorageIDs
    β”œβ”€β”€ GetObjectHandles (no format filter)
    β”œβ”€β”€ GetObjectInfo  β†’ filename / date / size / format
    β”œβ”€β”€ GetThumb(handle)
    └── GetObject(handle)  β†’ streaming to MediaStore

Architecture

  • Kotlin + Jetpack Compose + Material 3
  • OkHttp for HTTP (WiFi-network-bound socket factory)
  • Coil for thumbnail loading
  • MVVM with StateFlow

Why not just fix IEM?

Sony's Imaging Edge Mobile has a bug where the app process dies within ~100ms of going to background, even before connecting to any camera. This is an app-level defect (not OS kill), and Sony hasn't fixed it despite years of complaints. This app bypasses IEM entirely by speaking the camera's HTTP API directly.

πŸ“„ License

MIT β€” do whatever you want with it.

About

πŸ“· Lightweight Android app to transfer photos from Sony cameras via WiFi β€” replaces Imaging Edge Mobile

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages