Skip to content

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.)

Notifications You must be signed in to change notification settings

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

Languages