SimpleFileUpload

Android file and Samsung dumpstate log upload app with a self-hosted Flask upload server

Get files and Samsung dumpstate logs off Android devices, onto a server you control.

← Back to Dashboard

How it works

SimpleFileUpload has two parts. The Android app uploads a file (or a bundle of dumpstate logs) to your server and gets back a short code. Anyone with the code can download the file from the server's web page until it expires or hits its download limit.

1 · Android app

Pick a file or dumpstate logs. The app zips and uploads them.

→
2 · Upload server

Stores it and returns a 6-character code. Share the code; download from the web page.

Android app

Android
  • Upload any file from device storage
  • Finds Samsung dumpstate files automatically; multi-select several and send them as one package
  • Zips files before upload; chunked uploads for large files
  • Set an expiry time and maximum number of downloads per upload
  • Upload history with codes to copy and share, and delete from the server
  • Android 14+ support with a proper foreground service
View on GitHub

Upload server

Python · Flask · Docker
  • Lightweight Flask server with a clean download page
  • Uploads authenticated with a client key
  • Secure 6-character alphanumeric codes
  • Chunked upload support for large files
  • Download limits, expiry times, and automatic cleanup
  • Runs in Docker; the app needs HTTPS (bring your own cert or self-signed)
View on GitHub

Quick start

  1. Run the server with Docker and HTTPS:
    docker build -t simplefileupload-server .
    openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
    docker run -p 7777:7777 \
      -e CLIENT_KEY=your-secret-key \
      -v $(pwd)/cert.pem:/app/cert.pem \
      -v $(pwd)/key.pem:/app/key.pem \
      simplefileupload-server
  2. Build the Android app and, in its settings, enter your server URL and the same client key.
  3. Upload a file, share the code, and download it from your server's web page.

Set your own CLIENT_KEY. If you don't, the server falls back to a default key.