Skip to content

h9zdev/SyncME

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

SyncMe

SyncMe

SyncMe is a lightweight tool that connects your Android, Linux, and Windows devices so they can work together seamlessly. Control, sync, and manage everything from one simple web interface.

Stars Forks Issues Android Linux Windows Kotlin Python Support My Work


✨ Key Features

πŸ–₯️ Central Server (Flask + Socket.IO)

  • Modern Web Dashboard: Tactical UI for managing all connected devices. πŸ“Š
  • REST API & WebSockets: Low-latency communication and real-time updates. ⚑
  • MJPEG Streaming: Live camera feed from Android devices directly in the browser. πŸŽ₯
  • File Management: Centralized file transfers and storage. πŸ“‚
  • Discovery: Automatic device discovery via UDP and mDNS. πŸ”
  • PWA Support: Install the dashboard as a standalone app. πŸ“±

πŸ“± Android Agent (Native & Termux)

  • Full Control: Torch, vibration, volume, brightness, TTS, and toasts. πŸ”¦πŸ“³πŸ”Š
  • Media: On-demand photos, microphone recording, and MJPEG live stream. πŸ“·πŸŽ™οΈ
  • Data Sync: Bidirectional clipboard, notification mirroring, SMS inbox/send, contacts, and call logs. πŸ“‹βœ‰οΈβ˜ŽοΈ
  • Tracking: Continuous and on-demand GPS location tracking. πŸ“
  • Remote Shell: Execute commands remotely on your Android device. 🐚
  • Smart Fallback: Works in both "Full API" (Termux:API) and "No-API" modes. 🧠

🐧 Linux & πŸͺŸ Windows Agents

  • Clipboard Sync: Bidirectional clipboard sharing across your mesh. πŸ“‹
  • Notifications: Mirror server-side notifications to your desktop. πŸ””
  • Remote Shell: Securely execute shell commands from the dashboard. 🐚
  • Heartbeat: Real-time status reporting. ❀️

πŸ› οΈ Installation & Setup

1. 🌐 Server Setup (Linux/Kali/VPS)

The server acts as the central hub.

# Clone the repository
git clone https://github.com/h9zdev/SyncME.git
cd SyncME

# Install dependencies
pip install -r requirements.txt

# Start the server
python server.py

Open http://localhost:5000 in your browser. Default token is syncbridge-token-2024.

Tip

If you are running locally, use your local IP address. You can also use port forwarding to expose your server to the internet. 🌍

2. πŸ“± Android Native App Setup

Download the SyncME Android app to easily connect your device.

Once installed:

  1. Open the app.
  2. Enter your Server URL, Token, and Device Name.
  3. Click Connect. πŸš€

3. 🐚 Android Termux Setup

For advanced users, run the agent within Termux.

Download Termux and Addons:

Setup Steps:

# Open Termux and download the setup script and agent
curl -O https://raw.githubusercontent.com/h9zdev/SyncME/main/termux_setup.sh
curl -O https://raw.githubusercontent.com/h9zdev/SyncME/main/agent_android.py

# Run the setup script
chmod +x termux_setup.sh
./termux_setup.sh

# Start the agent
python agent_android.py --server [YOUR_SERVER_URL] --token [YOUR_TOKEN]

4. 🐧 Linux Agent

export SYNCBRIDGE_SERVER="http://YOUR_SERVER_IP:5000"
export SYNCBRIDGE_TOKEN="your-secret-token"
python agent_linux.py

5. πŸͺŸ Windows Agent

# Install dependencies
pip install requests pywin32 plyer

# Set environment and run
$env:SYNCBRIDGE_SERVER="http://YOUR_SERVER_IP:5000"
$env:SYNCBRIDGE_TOKEN="your-secret-token"
python agent_windows.py

πŸ›°οΈ How it Works

  1. The Hub: server.py runs a Flask web server and a Socket.IO hub. It stores device states and queues commands.
  2. The Agents: Agents connect to the server via REST (polling for commands) and push data (heartbeats, clipboard, stats).
  3. The Tunnel: If your server is behind a NAT, use a tunnel like Ngrok or Cloudflare Tunnel to expose the port.
  4. Live Stream: Android agents capture frames using termux-camera-photo and POST them to the server, which then streams them to the dashboard using MJPEG.

❓ Troubleshooting

  • Termux:API calls fail: Ensure you have both the termux-api package (pkg install termux-api) and the Termux:API app installed from F-Droid.
  • Device shows as Offline: Check if the agent is running and the SYNCBRIDGE_SERVER URL is correct.
  • MJPEG Lag: Streaming performance depends on network latency and device CPU. Lower the FPS in the dashboard if needed.

πŸ”’ Security

SyncBridge uses a simple token-based authentication (X-Auth-Token). It is highly recommended to run the server behind a reverse proxy with HTTPS and use a strong, unique token. πŸ›‘οΈ

export SYNCBRIDGE_TOKEN="a-very-strong-random-token"
export SECRET_KEY="your-flask-secret"
python server.py

πŸ“Έ Screenshots

Login Screen

Login Screen

Dashboard

Dashboard

Device Control

Device Control

Settings / Interface

Settings

πŸ“œ License

This project is licensed under the Creative Commons Attribution-NonCommercial 4.0 International (CC BY-NC 4.0) License. See the LICENSE file for more details.

Unauthorized use is strictly prohibited.

πŸ“§ Contact: singularat@protn.me

β˜• Support

Donate via Monero: 45PU6txuLxtFFcVP95qT2xXdg7eZzPsqFfbtZp5HTjLbPquDAugBKNSh1bJ76qmAWNGMBCKk4R1UCYqXxYwYfP2wTggZNhq

πŸ‘₯ Contributors and Developers

haybnzz H9yzz VaradScript

About

SyncMe is a lightweight, cross-platform system designed to connect and control your devices (Android, Linux, Windows) through a central server. It features a modern tactical Web UI, real-time synchronization, and powerful remote execution capabilities.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors