Skip to content

Latest commit

 

History

39 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Share File

A high-performance Android file server implementation providing seamless local network file sharing via a modern web interface.


Features

  • Integrated File Explorer: Responsive web interface for browsing and managing files from any browser across Grid, List, and Table views.
  • Selected Files Mode (Xender / Quick Share Style): Share specific files only instead of entire storage or folders for enhanced privacy, backed by strict server-side whitelist security.
  • System Share Sheet Integration: Share files directly from Android's system share menu (ACTION_SEND / ACTION_SEND_MULTIPLE) in other apps (Gallery, Google Photos, Files, WhatsApp, etc.).
  • Multi-Selection & Range Engine: Shift + Click range selection across items, Select All top bar menu toggle, and instant bulk ZIP archive generation.
  • Categorized App Package Manager: Download installed applications as APKs cleanly divided into User Apps and System Apps tabs with friendly filenames (e.g. AppName.apk).
  • Media Gallery & Server-Side Filtering: High-resolution media preview with category-filtered paginated loading (type=image, type=video).
  • Auto Shutdown (Default Active): Automatic inactivity timeout server shutdown (60 min default) to preserve phone battery and network resources.
  • Screen Keep-On WakeLock: Server continuity ensured with automated screen keep-on wake-lock during active hosting.
  • Secure Access & Redesigned Login: Password protection with passcode entry and modern Login UI, strict IP whitelisting, device approval (QR auth), and optional TLS encryption.
  • Transfer History Logging: Track sent files and received uploads with timestamps and client IP info.
  • Adaptive Dynamic UI: Neumorphic Compose app dashboard with automated light/dark mode synchronization and floating navigation bar.

User Manual

Initial Setup

  1. Installation: Install the APK on your Android device.
  2. Permissions: Grant "All Files Access" when prompted. This is required for the server to access and share your requested directories.

Server Configuration

  1. Share Mode Selection:
    • Full Storage / Directory Mode: Tap Browse to select a specific folder, or Internal for storage root.
    • Files Only Mode: Tap Files Only to select individual files via system picker, or share files directly from another app using Android's system share sheet.
  2. Network Settings:
    • Set the listening Port (default: 8080).
    • Ensure your device is connected to a local Wi-Fi network or active Hotspot.
  3. Automation & Security:
    • Auto Shutdown: Enabled by default (auto turns off server after 60 min inactivity).
    • Password Protection: Set an access passcode in Security & Settings. Connected clients will be prompted with a modern Login screen.
  4. Launch: Tap Start Server. The interface will display a QR code, active URL, and keep the screen active.

Connecting to the Server

  • Automatic: Scan the displayed QR code with another mobile device to open the URL instantly.
  • Manual: Navigate to the displayed local IP address and port (e.g., http://192.168.1.14:8080) in any modern web browser.

Technical Specifications

To maintain performance and a minimal footprint, Share File utilizes a specialized architecture:

  1. Low-Level HTTP Engine: Built using raw Java Sockets (ServerSocket) instead of heavyweight frameworks for instant startup and low resource consumption.
  2. Jetpack Compose UI: Native Android dashboard with Neumorphic UI design, floating bottom navigation, and screen wake-lock integration (FLAG_KEEP_SCREEN_ON).
  3. Intent Interception: Handles ACTION_SEND and ACTION_SEND_MULTIPLE intents from system Share Sheet to launch restricted server sessions.
  4. MediaStore Integration: Direct query of the Android MediaSystem with server-side media type filtering (image/video) for paginated gallery streaming.
  5. Stateless Web SPA: Single Page Application written in Vanilla ES6+ JS with range selection, top bar actions, and zero framework overhead.
  6. Security Sandboxing: Strict canonical path comparisons and file whitelisting (resolveFile) to block unauthorized directory traversal.

Development & Build

Requirements

  • JDK 17 or higher
  • Android SDK (API 34)
  • Gradle Wrapper (included)

Build Instructions

# Build the debug APK
cd android/
./gradlew assembleDebug

The output APK is located at: android/app/build/outputs/apk/debug/app-debug.apk

Git Tagging & Release Workflow

Pushing a git tag (v*) triggers GitHub Actions to automatically build and create a GitHub Release:

# Commit changes & create annotated release tag
git add -A
git commit -m "v3.0.7 patch update"
git tag -a v3.0.7 -m "Release v3.0.7"

# Push main branch and tags to GitHub
git push origin main --tags

License & Credits

Developed by saheermk.
For detailed API references and internal architecture, see DOCS.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages