Skip to content

Aldeshov/ADBFileExplorer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ADB File Explorer

Python linting: pylint

Simple cross-platform File Explorer for adb devices. Uses Python library adb-shell or command-line tool adb.

Note

  • This project is currently not actively maintained. Bug reports, recommendations, and improvements are welcome via issues and pull requests.

Features:

  • List of adb devices
  • Connect via IP (TCP)
  • Listing / Pulling / Pushing files
  • Renaming and Deleting files

1. Screenshots

Devices & Notifications

Devices & Notifications

Files

Files

2. Requirements

  • Python 3.8+ (older versions are not tested)
  • PyQt5
  • adb (Android Platform Tools) if you choose the external adb implementation (default)
  • Optional: adb-shell and libusb1 (only needed if you choose the Python implementation of ADB inside the app)

External adb vs Python adb-shell

  • You can choose which ADB core to use in settings.json:
    • external — use the system adb binary (default, recommended for simplicity). In this case you do NOT need libusb1 or adb-shell.
    • python — use adb-shell (pure Python). If you want to communicate over USB, you will need libusb1 plus OS-specific libs/drivers (below). For TCP/IP connections, libusb1 is not required.

3. Install

3.1 Prerequisites

Installing and preparing Python (if not already installed)

  • Ubuntu/Debian (Linux)
    sudo apt-get update
    sudo apt-get install -y python3 python3-pip python3-venv
    python3 -m pip install --upgrade pip setuptools wheel
  • macOS (Homebrew)
    brew update
    brew install python@3
    python3 -m pip install --upgrade pip setuptools wheel
  • Windows (PowerShell)
    winget install Python.Python.3
    py -m pip install --upgrade pip setuptools wheel

OS-specific prerequisites only for adb-shell + libusb1 (skipped if you choose the external adb implementation)

  • Linux: install libusb-1.0-0 (runtime) and set proper udev rules so that your user can access the device without root. For example:
    sudo apt-get install -y libusb-1.0-0
    # Optional but recommended: Android udev rules
    # See https://github.com/M0Rf30/android-udev-rules or your distro's package
  • macOS: install libusb via Homebrew:
    brew install libusb
  • Windows: install a WinUSB driver for your device using Zadig:

3.2 Dependencies and environment

  1. Download or git clone https://github.com/Aldeshov/ADBFileExplorer.git
  2. cd ADBFileExplorer
  3. Create virtual environment by running python3 -m venv venv (Linux/macOS) or py -m venv venv (Windows)
  4. Activate virtual environment by running venv\Scripts\activate (Windows) or source venv/bin/activate (Linux/macOS)
  5. Install requirements:
    • Option A: Full installation (external adb + optional python adb):
      pip install -r requirements.txt
    • Option B: Manual installation:
      pip install PyQt5 # (external adb only)
      pip install adb-shell libusb1 # (If you plan to use the Python adb implementation)
    • In newer python versions, you may need to install setuptools manually:
      pip install setuptools

4. App settings (src/app/settings.json)

{
  "adb_path": "adb", // Full adb path, or just "adb" if the executable is in `$PATH`
  "adb_core": "external", // Set to "external" to use system `adb` executable, or "python" to use `adb-shell`
  "adb_kill_server_at_exit": false, // Stop adb server on app exit
  "preserve_timestamp": true, // Preserve file timestamps when pushing files
  "adb_run_as_root": false // Run adb as root
}

Note: The example above uses JSON5-style comments for explanation. The actual file src/app/settings.json is standard JSON and does not support comments.

5. Run the app

  • Using helper scripts:
    • Linux/macOS: ./run.sh
    • Windows: run.bat
  • Or directly with Python from the project root:
    # Linux/macOS
    python3 -m src.app
    # Windows
    py -m src.app

6. License

ADB File Explorer [python-app]
Copyright (C) 2025  Azat Aldeshov

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

About

File Explorer for Android devices

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 7

Languages