Skip to content

AsmrCodeZ-YT/ADB

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ ADB GTK4 ADB Transfer Tool ⚑

image.png

Here you go β€” a clean, professional English README for your project, suitable for GitHub πŸ‘Œ (Structured, polished, and fully aligned with what your tool actually does.)


πŸ“±βš‘ ADB Transfer Tool (GTK4 + libadwaita)

A modern and fast GUI tool for transferring files between Android ↔ Linux using ADB. Built with GTK4 + libadwaita, featuring real progress tracking, speed measurement, and full error logging.

This tool uses a tar + pv pipeline to achieve maximum transfer speed without compression.


✨ Features

  • πŸ”„ Two-way transfer modes

    • Pull: Phone β†’ PC
    • Push: PC β†’ Phone
  • ⚑ High-speed transfer Uses tar streaming β€” no compression β€” for optimal throughput.

  • πŸ“Š Real progress bar Progress is based on pv -n output, giving accurate percent completion.

  • πŸš€ Live Speedometer Shows real-time transfer speed (B/s, KB/s, MB/s).

  • πŸ§ͺ Full logging All internal operations are logged to the terminal (debug, error, info).

  • πŸ” Error capturing & toast notifications Any adb/tar errors are displayed inside the UI.

  • πŸ—‚οΈ Automatic remote directory handling Always works inside:

    /sdcard/Transfer
    

πŸ“¦ Requirements

Make sure you have the following installed:

On Linux:

  • Python 3.8+
  • GTK4
  • libadwaita
  • PyGObject (python3-gi)
  • ADB (Android Debug Bridge)
  • tar
  • pv

Example (Fedora):

sudo dnf install gtk4 libadwaita python3-gobject pv adb

Example (Ubuntu 24.04+):

sudo apt install gir1.2-gtk-4.0 gir1.2-adw-1 python3-gi pv adb

πŸ› οΈ Installation

Clone the repository:

git clhttps://github.com/AsmrCodeZ-YT/ADB.git
cd adb-transfer-tool

Run the app:

python3 main.py

πŸ“ Default Transfer Paths

Mode Source β†’ Target
Pull /sdcard/Transfer β†’ Local folder
Push Local folder β†’ /sdcard/Transfer

The directory is created automatically on the device if missing.


πŸ–₯️ How It Works Internally

Pull (Phone β†’ PC)

adb exec-out "cd /sdcard && tar -c -f - Transfer" \
| pv -n -s <remote_size> \
| tar -xf - -C <local_path>

Push (PC β†’ Phone)

tar -cf - -C <local_path> . \
| pv -n -s <local_size> \
| adb shell "tar -xf - -C /sdcard/Transfer"

This gives:

  • No compression overhead
  • Maximum ADB throughput
  • Accurate progress measurement

🚩 Troubleshooting

β€œADB device not connected”

  • Ensure USB debugging is enabled

  • Run:

    adb devices
  • Make sure you’ve accepted the RSA fingerprint

Stuck at 0%

  • pv or tar not installed
  • ADB unauthorized
  • Permission denied on /sdcard/Transfer

Very slow transfer

  • USB 2.0 cable
  • Bad-quality cable
  • Using USB hubs

πŸ“œ License

MIT License β€” free to use, modify, and distribute.


🀝 Contributing

Pull requests and improvements are welcome! If you have ideas for features (e.g., file preview, selective transfers), feel free to create an issue.


If you'd like, I can also generate: βœ… A more detailed wiki βœ… Animated GIF demo βœ… Icons/appstream metadata for Linux packaging βœ… Flatpak manifest

Just tell me!

About

Here you go β€” a clean, professional English README for your project, suitable for GitHub πŸ‘Œ (Structured, polished, and fully aligned with what your tool actually does.)

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages