Professional Android Backup Tool with Web Interface, Streaming Pipeline & Resume Support
Features β’ System Requirements β’ Installation β’ Usage Guide β’ Troubleshooting
- Streaming Pipeline β Data streams directly from Android to computer without temporary files.
- ADB exec-out β Uses optimized
adb exec-outfor maximum transfer speed. - No Temp Files β Direct streaming pipeline: Android β
tarβadbβ Windowstarβ Destination. - Real-time Progress β Live monitoring with speed, ETA, percentage, and file count.
- Browse Android Folders β Navigate your Android file system directly from the web UI.
- Show/Hide Files β Toggle between viewing folders only or all items.
- Smart File Icons β Visual distinction for images, videos, audio, documents, and archives.
- Quick Navigation β One-click shortcuts to Home (
/sdcard/), DCIM, and parent folders.
- Flexible Destination β Choose any Windows folder with a built-in native folder browser.
- Open Output Folder β Open the backup destination directly in Windows Explorer from the UI.
- Resume Support β Auto-detect and seamlessly resume interrupted backups.
- Stop/Start Controls β Full control to pause or cancel the backup process at any time.
- Progress Bar β Visual percentage indicator.
- Speed Tracking β Displays current and average transfer speeds.
- ETA Calculator β Smart estimation of remaining time.
- Activity Log β Timestamped, color-coded event logging for easy debugging.
| Requirement | Details |
|---|---|
| OS | Windows 10 / 11 (Native) |
| Python | 3.10 or higher |
| ADB | Android Platform Tools (installed and added to system PATH) |
| Android | Device with USB Debugging enabled |
| Browser | Chrome, Firefox, Edge, or any modern web browser |
git clone [https://github.com/DeJavi08/ADB-FileManager.git](https://github.com/DeJavi08/ADB-FileManager.git)
cd ADB-FileManager
pip install -r requirements.txt
- Download Android Platform Tools for Windows.
- Extract the zip file and add the folder path to your system PATH environment variable.
- Go to Settings β About Phone β Tap Build Number 7 times.
- Go back to Settings β System (or Developer Options) β Enable USB Debugging.
python backup_app.py
Navigate to http://localhost:5000 in your browser.
- Connect your Android device via USB with USB Debugging enabled.
- Launch the app and open
http://localhost:5000. - Browse or enter your target source folder (e.g.,
/sdcard/DCIM/). - Select your backup destination folder on the computer.
- Click Start Backup and monitor the live progress.
| Action | Description |
|---|---|
| Click Folder | Navigate deeper into the selected directory. |
| Click "Select" | Set the current folder as the backup source. |
| π· DCIM | Quick jump straight to the camera folder. |
| π Home | Return to the root user storage (/sdcard/). |
| π Refresh | Reload the current folder contents. |
| π Show/Hide Files | Toggle the visibility of files within folders. |
| Button | Function |
|---|---|
| βΆ Start Backup | Begin the data streaming process. |
| βΉ Stop | Gracefully halt the running backup. |
| π Browse | Open native Windows folder picker to choose destination. |
| π Open | Open the designated destination folder in Windows Explorer. |
android-backup-professional/
βββ backup_app.py # Main application executable
βββ requirements.txt # Python dependencies
βββ README.md # Documentation
βββ Demo.png # UI Preview Screenshot
βββ templates/
β βββ index.html # Web UI template
βββ static/
β βββ css/
β β βββ style.css # UI Stylesheet
β βββ js/
β βββ app.js # Frontend WebSocket & UI logic
βββ backup_states/ # Session state files for resume support (auto-created)
βββ backup/ # Default local backup folder
- Source Folder:
/sdcard/DCIM/ - Destination:
backup(relative local directory) - Chunk Size:
1 MB - Auto-refresh: 30 seconds for connection state, 3 seconds for active status.
You can directly edit backup_app.py to change:
chunk_sizeβ Optimizes data packet streaming throughput.ping_timeoutβ Adjusts WebSocket connection stability tolerances.portβ Server port binding (Default:5000).
Solution: Verify physical connection and ADB state:
# Check if device is properly recognized
adb devices
# If it returns an empty list, restart the ADB daemon
adb kill-server
adb start-server
Solution:
- Ensure the target directory actually exists via shell:
adb shell ls /sdcard/ - Try standard pathways like
/sdcard/Download/to isolate permission locks.
Solution: Ensure ADB is declared in system variables. Test availability globally using:
adb version
Solution: Modify the port mapping inside backup_app.py:
# Change port argument from 5000 to 8080
socketio.run(app, host='0.0.0.0', port=8080)| Extension | Icon | Description |
|---|---|---|
.jpg, .png, .gif |
πΌοΈ | Images |
.mp4, .avi, .mkv |
π¬ | Videos |
.mp3, .wav, .flac |
π΅ | Audio Tracks |
.zip, .rar, .7z |
π¦ | Compressed Archives |
.pdf |
π | PDF Documents |
.doc, .docx |
π | Word Documents |
.xls, .xlsx |
π | Spreadsheets |
.apk |
π± | Android Application Packages |
| Scenario | File Count | Total Size | Average Speed | Memory Footprint |
|---|---|---|---|---|
| Photos Only | ~1,000 | 2 GB | 25β35 MB/s | ~100 MB |
| Videos Only | ~100 | 50 GB | 30β40 MB/s | ~150 MB |
| Mixed Media | ~50,000 | 100 GB | 20β30 MB/s | ~200 MB |
Note: Actual speeds depend heavily on your physical USB cable rating (USB 2.0 vs 3.0/C) and storage drive read/write caps.
- Platform Lock: Built specifically to leverage native Windows APIs (
tar.exe); Linux and macOS environments are currently unsupported. - Data Responsibility: This tool acts as a transfer bridge. Always verify the byte size of completed backups before wiping your source device. The developers hold no liability for data loss.
This project is licensed under the MIT License - see the LICENSE file for details.
Made with β€οΈ for the Android community
Report Bug β’ Request Feature β’ Star on GitHub
