Flash case study

Download · Android 7.0+ · Windows (beta)

Flash

A Kotlin library and app for offline file transfer, chat and calls between nearby devices. No server, no internet, no account.

Other downloads

Install

  1. On Android, open the downloaded APK and tap Install. If asked, allow your browser or file manager to install unknown apps.
  2. On Windows, run the .exe installer and follow the setup wizard. If SmartScreen warns about an unrecognised app, click More info, then Run anyway.
  3. Connect both devices to the same Wi-Fi network or phone hotspot and open Flash on each. Nearby devices appear on their own.
  4. Pick a device to send files, chat or call. You can compare safety numbers to check you are talking to the right device.
  • This is a beta. Features and settings can change before the stable release; please report problems on GitHub.
  • Building an app? Flash is also a set of Kotlin libraries on JitPack. See the library docs.

What's new in 2.0.0-beta

Flash v2.0.0-beta — Cross-Platform LAN & Wi-Fi Direct Peer-to-Peer Transfer & Messaging

We are thrilled to announce the v2.0.0-beta release of Flash! This milestone delivers full cross-platform parity between Android and Windows Desktop, introducing end-to-end encryption, an adaptive dual-pane UI, deep Android system integration, native Windows desktop integration, and resilient offline networking.


🌟 Key Highlights

🔒 Dual-Layer Security & True End-to-End Encryption

  • Wire-Level TLS 1.3 Transport (WSS): Authenticated communication over local Wi-Fi / Hotspot with Trust-On-First-Use (TOFU) certificate fingerprint pinning.
  • Pairwise AES-256-GCM E2E Messaging: ECDH P-256 key agreement with HKDF-SHA256 session keys. Chat messages, replies, reactions, and typing signals are encrypted on the wire.
  • Binary Chunk AES-256-GCM Encryption: Large file streams and chunks are cryptographically authenticated with 128-bit authentication tags.
  • Interactive Verification & Device Fingerprints: Compare safety numbers and view SHA-256 device fingerprint hashes directly in the app.
  • AndroidKeyStore TLS Resilience (ERROR-070): Hardware-backed P-256 private keys on Android now support DIGEST_NONE for Conscrypt TLS signatures, with self-healing key migration.

📱 Android System Integration

  • System Share Target (ACTION_SEND & ACTION_SEND_MULTIPLE): Select photos, videos, or documents in Google Photos, Files, or WhatsApp and share directly with Flash.
  • Android 14+ DataSync Foreground Service: Persistent, uninterrupted background transfers with real-time transfer speed, ETA, and progress notifications. Includes Android 15 onTimeout handling.
  • Quick Settings Tile: Toggle discoverability or jump straight to Nearby sharing with one tap from the Android notification shade.
  • App Shortcuts: Long-press the app icon to quickly jump to "Send Files", "Nearby Devices", or "Chats".
  • Adaptive Dual-Pane Layout: Automatically transforms on tablets (Pixel Tablet, Galaxy Tab), foldables, and landscape mode into a responsive Navigation Rail and List-Detail view.

💻 Windows Desktop Native Experience

  • No Java Required: Ships with native .exe and .msi installers bundling an embedded private runtime.
  • Adaptive Two-Pane Layout: Modern 68dp Navigation Rail, clamped list pane (320–480dp), and comfortable reading measure (up to 580dp message bubble width) inspired by WhatsApp & Telegram desktop.
  • System Tray & "Close to Tray": Keeps transfers running in the background when clicking the close button (X), with an active tray menu to manage Flash.
  • Dynamic Taskbar Icon Badging: Windows taskbar badge counter alerts you to unread messages in the background, accompanied by native Windows OS notifications.
  • Drag-and-Drop File & Folder Transfers: Drop single files or entire directory trees directly onto a chat window to send them instantly.
  • Relative Path Preservation: Preserves folder structures on transfer while enforcing strict path-traversal safeguards.
  • Upright Mobile Photos & Video Thumbnails: Integrated JPEG EXIF parser automatically rotates smartphone camera photos; JCodec extracts high-fidelity video thumbnails without external codecs.
  • Native Windows Explorer Reveal: One-click "Reveal in folder" directly selects and highlights completed files in Windows Explorer.
  • Windows Startup: Optional auto-start on boot via Windows Registry integration.

📚 Android Library / SDK Modules

Developers can now consume Flash's core engine and UI modules via JitPack:

// settings.gradle.kts
dependencyResolutionManagement {
    repositories {
        mavenCentral()
        maven { url = uri("https://jitpack.io") }
    }
}

// app/build.gradle.kts
dependencies {
    implementation("com.github.Kali452345.Flash:core-engine:v2.0.0-beta")
}

📦 Installation Guide

Android

  1. Download app-release-signed-beta.apk.
  2. Open the file on your device and tap Install (allow "Install unknown apps" if prompted).
  3. Requires Android 7.0 (Nougat, API 24) or higher.

Windows (No Java Needed)

  • Option 1 (Recommended): Download and run Flash-2.0.0.exe. Follow the setup wizard to install Flash.
  • Option 2 (Enterprise / MSI): Download and run Flash-2.0.0.msi.
  • Option 3 (Portable JAR): If you already have Java 11+ installed, you can run java -jar Flash-windows-x64-2.0.0.jar.