A modern, user-friendly GUI application for Android Debug Bridge (ADB) operations on Windows, built with PyQt6.
- Auto-detect connected Android devices
- View device information (model, manufacturer, Android version, etc.)
- Auto-refresh device list every 5 seconds (silent mode to reduce log spam)
- Device selection with automatic status updates
- Push files from PC to Android device
- Pull files from Android device to PC
- Install APK files (supports split APKs)
- Uninstall applications (with fallback to user uninstall for system apps)
- Reinstall apps for current user
- List all installed apps with search functionality
- Enable/disable apps
- View app details and package information
- Open APKs folder
- Take screenshots (automatically saved to
screenshots/folder with timestamps) - Reboot device (normal, recovery, bootloader)
- Multi-line textbox for entering complex commands
- Execute ADB shell commands directly on your Android device
- Supports Linux commands (not Windows commands)
- Optional prefixes: You can include "adb shell" prefix, but it's not required (auto-stripped)
- View output in real-time in the log window
- View real-time Android logcat output
- Start/stop logcat streaming with improved error handling
- Automatic process validation and error reporting
- Clear log output
- Simple Mode: Remove all safe Google apps automatically
- Custom Mode: Select individual apps to remove (safe, risky, and unsafe packages)
- Categorized package lists:
- Safe packages (won't break functionality)
- Risky packages (might break some features)
- Unsafe packages (can break device - use with caution)
- Undo DeGoogle: Restore previously disabled/uninstalled packages
- State persistence: All changes are saved to
degoogle_state.json
- Dark Mode: Toggle between light and dark themes (persistent)
- Modern, clean interface
- Real-time status updates
- Comprehensive logging with timestamps
- Settings persistence (saved to
settings.json)
- Python 3.8+
- PyQt6 (install via
pip install PyQt6) - ADB (Android Debug Bridge)
- Download from: https://developer.android.com/studio/releases/platform-tools
- Extract the
platform-toolsfolder
- Android Device with USB debugging enabled
- Clone or download this repository
- Install Python 3.8 or higher
- Install PyQt6:
Or directly:
pip install -r requirements.txt
pip install PyQt6
- Download Android SDK Platform Tools:
- Visit: https://developer.android.com/studio/releases/platform-tools
- Extract the ZIP file to a location of your choice
- You'll need the
platform-toolsfolder
-
Enable USB debugging on your Android device:
- Go to Settings → About Phone
- Tap "Build Number" 7 times to enable Developer Options
- Go to Settings → Developer Options
- Enable "USB Debugging"
-
Connect your Android device via USB
-
Run the application:
python adb_gui.py
-
First Launch - Select ADB Path:
- On first launch, you'll be prompted to select the
platform-toolsfolder - Navigate to where you extracted the Android SDK Platform Tools
- Select the
platform-toolsfolder (the one containingadb.exe) - The path will be saved automatically for future use
- On first launch, you'll be prompted to select the
-
Select your device from the dropdown (devices auto-refresh every 5 seconds)
-
Use the various buttons to perform ADB operations
- On first launch, the application prompts you to select the
platform-toolsfolder - The selected path is saved to
settings.jsonfor persistence - You can change the ADB path later using the "ADB Path" button in the UI
- The application will also check system PATH as a fallback
- Settings are saved to
settings.json:- ADB path
- Dark mode preference
- DeGoogle state is saved to
degoogle_state.json:- Disabled packages
- Uninstalled packages
- Timestamps and actions
- Screenshots are automatically saved to the
screenshots/folder in the project directory - Filenames include timestamps:
screenshot_YYYYMMDD_HHMMSS.png
- Pulled APKs are saved to the
apks/folder in the project directory - Useful for backing up apps before uninstalling
- Devices are automatically detected and listed
- Device status (device, offline, unauthorized) is shown
- Click "Info" to see detailed device information
- Auto-refresh runs silently in the background (only logs when devices change)
- Push: Select a file from your PC and specify destination path on device
- Pull: Specify file path on device and choose where to save on PC
- Install APK: Browse and install APK files (supports split APKs)
- Uninstall: Select from installed apps list or enter package name
- List Apps: View all installed packages with:
- Search functionality (by app name or package)
- Filter to show only disabled apps
- Uninstall, reinstall, enable, disable actions
- Double-click to view app details
- Reinstall for User: Restore apps that were uninstalled for your user account
- Open APKs Folder: Quickly access pulled APK files
- Takes a screenshot and automatically saves to
screenshots/folder - Filename includes timestamp for easy organization
- Enter any ADB shell command in the multi-line textbox
- Commands run on your Android device (Linux), not on Windows
- Use Linux commands:
grep(notfindstr),ls(notdir),cat(nottype) - You can include "adb shell" prefix, but it's optional (will be auto-stripped)
- Click "Run Command" to execute
- Output appears in real-time in the log window
- Examples:
ls /sdcard,pm list packages,dumpsys battery | grep level
- Click "Start Logcat" to begin streaming Android logs
- Improved error handling: Shows clear error messages if logcat fails to start
- Process validation: Automatically checks if logcat process started successfully
- Click "Stop Logcat" to stop streaming
- Click "Clear" to clear the log output
- Logs appear in real-time in the output window with "LOGCAT" tag
- Simple Mode: Quickly remove all safe Google apps
- Custom Mode: Select individual apps from categorized lists:
- Safe packages: Apps that can be safely removed
- Risky packages: Apps that might break some functionality
- Unsafe packages: Critical system components (use with extreme caution)
- Choose to disable (can be re-enabled) or uninstall (can be restored)
- Undo DeGoogle: Restore previously removed packages from saved state
- Toggle between light and dark themes using the button in the header
- Preference is saved automatically
- All UI elements update in real-time when toggled
- Logcat not working: The logcat feature may not display output correctly. This is a known issue that may be related to device compatibility or ADB version. Workaround: Use shell commands to view logs manually (e.g.,
logcat -d).
No devices found:
- Ensure USB debugging is enabled on your device
- Check USB cable connection
- Try different USB port
- On device, check for "Allow USB debugging?" prompt and accept it
- Run
adb devicesin command prompt to verify ADB can see your device
ADB not found:
- On first launch, you'll be prompted to select the ADB folder
- If you skipped it, use the "ADB Path" button to set it
- Make sure you select the
platform-toolsfolder (containsadb.exe) - The application will also check system PATH as a fallback
Permission denied errors:
- Some operations require root access on the device
- Try enabling "Root access" in Developer Options (if available)
- Some system apps can only be disabled/uninstalled for your user account
App list not showing:
- Make sure a device is selected
- Check the log output for any error messages
- Try refreshing the device list
Dark mode not applying to all elements:
- Try toggling dark mode off and on again
- Restart the application if issues persist
Shell command errors (e.g., "findstr: inaccessible or not found"):
- Remember: Commands run on your Android device (Linux), not Windows
- Use Linux commands:
grepinstead offindstr,lsinstead ofdir,catinstead oftype - You can include "adb shell" prefix, but it's optional (auto-stripped)
- Check the help text in the UI for examples
Logcat not showing output:
- Make sure a device is selected
- Check the log output for error messages
- Verify ADB connection: Try running a simple shell command first
- Some devices may require root access for full logcat output
- If logcat fails to start, check the error message in the log window
adb/
├── adb_gui.py # Main application file
├── requirements.txt # Python dependencies
├── settings.json # User settings (ADB path, dark mode)
├── degoogle_state.json # DeGoogle operation history
├── screenshots/ # Screenshot storage (auto-created)
└── apks/ # Pulled APK storage (auto-created)
This project is open source and available for personal and commercial use.
Feel free to submit issues, fork the repository, and create pull requests for any improvements.