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
Devices & Notifications
Files
Python 3.8+(older versions are not tested)PyQt5adb(Android Platform Tools) if you choose the externaladbimplementation (default)- Optional:
adb-shellandlibusb1(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 systemadbbinary (default, recommended for simplicity). In this case you do NOT needlibusb1oradb-shell.python— useadb-shell(pure Python). If you want to communicate over USB, you will needlibusb1plus OS-specific libs/drivers (below). For TCP/IP connections,libusb1is not required.
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:
- Download Zadig: https://zadig.akeo.ie/
- Connect your Android device, open Zadig, select the device, choose WinUSB, and click Install Driver.
- This is only required for the
adb-shell + libusb1path, not for the externaladbbinary. - Also for dependencies of
adb-shellyou may need Microsoft C++ Build Tools: https://visualstudio.microsoft.com/visual-cpp-build-tools/
- Download or
git clone https://github.com/Aldeshov/ADBFileExplorer.git cd ADBFileExplorer- Create virtual environment by running
python3 -m venv venv(Linux/macOS) orpy -m venv venv(Windows) - Activate virtual environment by running
venv\Scripts\activate(Windows) orsource venv/bin/activate(Linux/macOS) - 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
setuptoolsmanually:pip install setuptools
- Option A: Full installation (external adb + optional python adb):
{
"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.
- Using helper scripts:
- Linux/macOS:
./run.sh - Windows:
run.bat
- Linux/macOS:
- Or directly with Python from the project root:
# Linux/macOS python3 -m src.app # Windows py -m src.app
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/>.

