The ultimate all-in-one terminal toolkit for Waydroid power users.
Start, stop, manage apps, transfer files, capture screenshots, record screens, view logs β and much more β all from a beautiful, organized CLI with safety checks and graphical dialog support.
Getting Started Β· Features Β· CLI Flags Β· FAQ Β· Contributing
- Features at a Glance
- Requirements
- Quick Start
- Menu Overview
- CLI Flags (Non-Interactive)
- Logging
- Copy/Paste to Android
- Frequently Asked Questions
- Changelog & Releases
- Contributing
- License
- ADB Shell Access (Option 3): Drop into an interactive ADB shell directly from the menu, with automatic device state checks and reconnection.
- APK Downloader (Option 19): Search APKMirror by app name or download APKs from a direct URL, with optional immediate install.
- Theme Customization (Option 20): Choose from 6 color schemes β Light, Dark, Ocean, Forest, Sunset, Neon β all persisted to config.
- Accessibility Tools (Option 21): Large Text mode, Text-to-Speech status readout, and High-Contrast mode for comfortable terminal use.
- Realtime Resource Monitor (Option 23): Live CPU, RAM, and Disk usage updating in-place every second for a true dashboard experience.
- Session Attach Fix: Menu options now work after attaching to an existing ADB session, even if Waydroid status is not RUNNING.
- Robust ADB detection: Improved fallback logic for session detection and device connection.
- Bugfixes: No more false "Waydroid is not running" errors when attached; resource monitor no longer scrolls, but updates in-place.
| Feature | Description |
|---|---|
| Start / Restart | Launch Waydroid stack + Weston with automatic Wayland socket detection |
| Stop | Gracefully stop Waydroid and Weston compositor |
| ADB Shell Access | Drop into an interactive ADB shell with auto-reconnect if device is offline |
| Auto-detect Sessions | On launch, detects running Waydroid / ADB devices and offers to connect |
| APK Install | Install from local files, URLs (curl/wget), or batch from a directory |
| Waydroid Script | One-click access to GApps, Magisk, and more via casualsnek/waydroid_script |
| Feature | Description |
|---|---|
| ADB Auto-Handshake | Automatic connection and reconnect logic for reliable operations |
| List Devices | View all connected ADB devices |
| Reconnect ADB | Quick re-establish connection if it drops |
| Feature | Description |
|---|---|
| Display Settings | Change resolution & density; tablet/ultra-wide presets; restore defaults |
| App Management | Search, uninstall, batch uninstall, export installed app lists |
| Copy / Paste | Send terminal text into Android input fields β special characters supported |
| Theme Toggle | Light/dark terminal theme with persistence to config file |
| Feature | Description |
|---|---|
| πΈ Screenshot | Capture Android screen β ~/Pictures/Waydroid/ |
| π¬ Screen Recording | Record up to 180s β ~/Videos/Waydroid/ |
| π File Transfer | Push/pull files and folders between host β Android |
| π Logcat Viewer | Live logcat, filter by tag, errors-only, save to file |
| βοΈ Freeze / Disable Apps | Disable bloatware without uninstalling; re-enable anytime |
| π Clear App Data | Wipe all data or just cache for any app |
| π Quick Launch | Launch any installed app by package name |
| βΉοΈ Device Info | Android version, display, storage, memory, network, uptime |
| οΏ½ APK Downloader | Search APKMirror by name or download from direct URL; optional instant install |
| π¨ Theme Customization | 6 color schemes: Light, Dark, Ocean, Forest, Sunset, Neon β persisted |
| βΏ Accessibility Tools | Large Text mode, Text-to-Speech status, High-Contrast mode |
| π’ Realtime Resource Monitor | Live CPU/RAM/Disk usage updates in-place every second |
| Feature | Description |
|---|---|
| Zenity Dialogs | Optional graphical prompts (always-on-top with --modal) |
| Weston Focus | APK install dialogs auto-focus the compositor window via xdotool |
| Confirmations | Destructive actions require confirmation; bypass with --yes |
| Batch Operations | Batch APK install/uninstall from files or directories |
| Logging | Separate install/uninstall logs with auto-rotation at 1 MB |
| Update Check | Compares local version against GitHub; offers to open release page |
| Dependency | Purpose | Required |
|---|---|---|
waydroid |
Android container | β |
weston |
Wayland compositor | β |
adb |
Android Debug Bridge | β |
git |
Version control / self-update | β |
curl or wget |
APK downloads & update checks | β |
python3 |
Waydroid script support | β |
zenity |
Graphical dialogs (file picker, app selector) | Optional |
wl-clipboard |
Wayland clipboard (wl-copy / wl-paste) |
Optional |
xdotool |
Window focus for modal dialogs | Optional |
espeak-ng or spd-say |
Text-to-Speech for accessibility | Optional |
sudo apt update && sudo apt install -y \
waydroid weston adb zenity curl wget git \
python3 python3-pip wl-clipboard xdotool espeak-ngsudo pacman -S waydroid weston android-tools zenity curl wget git python wl-clipboard xdotool espeak-ng# 1. Clone the repository
git clone https://github.com/Nigel1992/Waydroid-Advanced-Manager.git
# 2. Enter the directory
cd Waydroid-Advanced-Manager
# 3. Make executable
chmod +x waydroid-manager.sh
# 4. Launch!
./waydroid-manager.shπ‘ Tip: Run
./waydroid-manager.sh --versionto check the installed version and release date.
The interactive menu is organized into 5 sections with 25 options:
ββ CORE ββ
1) START/RESTART Waydroid
2) STOP Waydroid & Weston
3) ADB SHELL ACCESS (Direct)
4) INSTALL APK File
5) WAYDROID SCRIPT (GApps, Magisk, etc.)
ββ ADB ββ
6) LIST ADB Devices
7) RECONNECT ADB
ββ SETTINGS & APPS ββ
8) DISPLAY SETTINGS (Resolution, Density)
9) APP MANAGEMENT (Install/Uninstall)
10) COPY/PASTE to Android
ββ TOOLS ββ
11) πΈ SCREENSHOT
12) π¬ SCREEN RECORDING
13) π FILE TRANSFER (Push/Pull)
14) π LOGCAT VIEWER
15) βοΈ FREEZE/DISABLE Apps
16) π CLEAR APP DATA/Cache
17) π QUICK LAUNCH App
18) βΉοΈ DEVICE INFO
19) π¦ APK DOWNLOADER
20) π¨ THEME CUSTOMIZATION
21) βΏ ACCESSIBILITY TOOLS
ββ SYSTEM ββ
22) STATUS
23) RESOURCE MONITOR (CPU/RAM/Disk)
24) CHECK FOR UPDATES
25) EXIT
Run any action directly from the command line without entering the interactive menu:
| Flag | Description |
|---|---|
--version, -v |
Show version and exit |
--help, -h |
Show help and exit |
--debug |
Enable debug logging |
--restart |
Restart Waydroid stack |
--stop |
Stop Waydroid and Weston |
--status |
Show system status |
--install-apk <path|url> |
Install APK from file or URL |
--install-apks-dir <dir> |
Batch install all APKs from a directory |
--uninstall-list <file> |
Uninstall packages from a newline-delimited file |
--yes, -y |
Auto-confirm destructive actions (scripting) |
--set-dpi <dpi> |
Set display density |
--set-res <WxH> |
Set display resolution |
--list-apps-export [file] |
Export installed apps list |
--theme <dark|light> |
Set and persist terminal theme |
--self-update |
Update script from git |
Examples:
# Install an APK from URL
./waydroid-manager.sh --install-apk https://example.com/app.apk
# Batch install a folder of APKs, auto-confirm
./waydroid-manager.sh --install-apks-dir ~/apks/ --yes
# Set resolution to tablet mode
./waydroid-manager.sh --set-res 1200x1920 --set-dpi 240All actions are logged to ~/.cache/waydroid-manager/:
| Log File | Contents |
|---|---|
waydroid-manager.log |
General operations, errors, session events |
install.log |
Per-APK install results and batch summaries |
uninstall.log |
Per-app uninstall results |
Log files are automatically rotated when they exceed 1 MB.
| Details | |
|---|---|
| How to use | Focus an input field in Waydroid β select Option 9 β type or paste text β press Enter |
| Supported | All plain text including special characters: & | ; < > $ \ ` |
| Not supported | Multi-line text, files, or binary data |
| How it works | Uses adb shell input text with proper escaping for shell metacharacters |
πΉ How do I install Waydroid in the first place?
Waydroid requires a Wayland-based desktop session (GNOME on Wayland, Sway, etc.) and a compatible Linux kernel.
# Ubuntu/Debian
sudo apt install waydroid
# Initialize Waydroid (first-time only)
sudo waydroid initFor detailed instructions, see the official Waydroid documentation.
πΉ Waydroid won't start β "Session is already running"
This happens when a previous Waydroid session wasn't cleanly shut down. Fix it with:
# Stop the container
sudo waydroid container stop
# Kill any leftover sessions
waydroid session stop
# Now start fresh with the manager
./waydroid-manager.shThe manager's auto-detect feature (on launch) will also notice an existing session and offer to reconnect.
πΉ ADB won't connect β "Connection refused" or device not found
- Make sure Waydroid is running β use Option 1 to start it first.
- Check the IP β Waydroid typically uses
192.168.240.112. The manager auto-detects this. - Restart ADB β try Option 6 (Reconnect ADB) or manually:
adb kill-server && adb start-server adb connect 192.168.240.112:5555 - Firewall β ensure your firewall isn't blocking local connections on port 5555.
πΉ APK installation fails β "INSTALL_FAILED_..."
| Error | Cause | Fix |
|---|---|---|
INSTALL_FAILED_OLDER_SDK |
APK requires a newer Android version | Find a compatible APK version |
INSTALL_FAILED_NO_MATCHING_ABIS |
APK is built for wrong architecture (e.g., ARM on x86) | Use an x86/x86_64 build or enable ARM translation via Waydroid Script (Option 4) |
INSTALL_FAILED_ALREADY_EXISTS |
App already installed | Uninstall first via Option 8, then retry |
INSTALL_FAILED_INSUFFICIENT_STORAGE |
Not enough space in the container | Clear app caches (Option 15) or resize the Waydroid image |
πΉ How do I get Google Play Store / GApps?
Use Option 4 (Waydroid Script) which integrates casualsnek/waydroid_script:
- Start Waydroid (Option 1)
- Select Option 4
- Choose "Install GApps"
After installation, reboot Waydroid. You'll need to sign in with your Google account. Some apps may require device certification β the Waydroid Script can register your device ID with Google.
πΉ How do I install Magisk / root Waydroid?
Also via Option 4 (Waydroid Script):
- Start Waydroid (Option 1)
- Select Option 4
- Choose "Install Magisk"
This patches the Waydroid system image with Magisk for root access. Useful for apps that need superuser privileges.
πΉ Screenshot / screen recording doesn't work
- Ensure ADB is connected β the "ACTIVE" indicator at the bottom of the menu should show a device.
- Screenshots use
adb shell screencapβ if this fails, it typically means the container's display isn't rendering properly. Try restarting Waydroid. - Screen recording uses
adb shell screenrecordβ some Waydroid builds may have limited support for this. Make sure the container is fully booted (wait 10-15 seconds after start). - Output folders are auto-created:
- Screenshots:
~/Pictures/Waydroid/ - Recordings:
~/Videos/Waydroid/
- Screenshots:
πΉ File transfer fails β "Permission denied"
Android's /sdcard/ is the safest target for file operations:
# Push to Android
adb push myfile.txt /sdcard/
# Pull from Android
adb pull /sdcard/myfile.txt ~/Downloads/If pushing to system paths (e.g., /system/), you'll need root (Magisk). For most use cases, stick to /sdcard/ β this is what the File Transfer tool (Option 12) uses by default.
πΉ How do I change the screen resolution / DPI?
Interactive: Use Option 7 (Display Settings) β choose from presets or enter custom values:
| Preset | Resolution | Use Case |
|---|---|---|
| Phone | 720Γ1280 | Mobile apps |
| Tablet | 1200Γ1920 | Tablet-optimized apps |
| Desktop | 1920Γ1080 | Landscape / productivity |
| Ultra-wide | 3440Γ1440 | Ultra-wide monitors |
CLI:
./waydroid-manager.sh --set-res 1920x1080 --set-dpi 160Changes take effect immediately. Use the "Reset to defaults" option to revert.
πΉ Can I disable bloatware / pre-installed apps?
Yes! Use Option 14 (Freeze/Disable Apps):
- Select "Disable (freeze) an app"
- Pick the app from the list (uses zenity picker if available)
- The app is disabled without being uninstalled β no data is lost
To re-enable: select "Enable (unfreeze) an app" and pick from the disabled list.
This is the safest way to deal with bloatware since you can always re-enable the app if needed.
πΉ The zenity dialog appears behind other windows
All zenity dialogs should use --modal to stay on top. If you're still experiencing issues:
- Make sure
xdotoolis installed:sudo apt install xdotool - The manager uses
xdotoolto focus the Weston compositor before opening dialogs - If a dialog still hides, click the taskbar/panel to bring it forward
πΉ Logcat shows too much output β how do I filter?
Use Option 13 (Logcat Viewer) which offers four modes:
| Mode | What it shows |
|---|---|
| Live logcat | Everything (Ctrl+C to stop) |
| Save to file | Dumps last 500 lines for offline analysis |
| Filter by tag | Only messages from a specific Android component (e.g., ActivityManager) |
| Errors only | Only ERROR-level messages (*:E filter) |
From CLI (outside the manager):
# Filter by tag
adb logcat -s ActivityManager
# Errors only
adb logcat *:E
# Save to file
adb logcat -d -t 1000 > ~/logcat_dump.txtπΉ How do I update the manager?
Option A β From the menu: Select Option 25 (Check for Updates). If a new version is available, the manager shows the GitHub URL and offers to open it in your browser.
Option B β CLI:
./waydroid-manager.sh --self-updateOption C β Manual:
cd Waydroid-Advanced-Manager
git pull origin mainπΉ Can I run this on X11 instead of Wayland?
Waydroid requires Wayland. The manager uses Weston as a nested Wayland compositor, which means it works even if your desktop session is X11. Weston creates a Wayland environment inside an X11 window.
If you're on X11, the manager handles Weston for you automatically β just use Option 1 to start.
πΉ How do I use CLI flags for scripting / automation?
Combine flags for headless operation:
# Install APK without prompts
./waydroid-manager.sh --install-apk ~/Downloads/app.apk --yes
# Batch install + auto-confirm
./waydroid-manager.sh --install-apks-dir ~/apks/ --yes
# Set display and exit
./waydroid-manager.sh --set-res 1920x1080 --set-dpi 240
# Export app list to file
./waydroid-manager.sh --list-apps-export ~/apps.txtUse --yes / -y to skip all confirmation prompts β ideal for scripts and CI pipelines.
πΉ Where are config and cache files stored?
| Path | Contents |
|---|---|
~/.config/waydroid-manager.conf |
Theme preference and settings |
~/.cache/waydroid-manager/ |
Logs directory |
~/.cache/waydroid-manager/waydroid-manager.log |
General log |
~/.cache/waydroid-manager/install.log |
APK install history |
~/.cache/waydroid-manager/uninstall.log |
Uninstall history |
~/Pictures/Waydroid/ |
Saved screenshots |
~/Videos/Waydroid/ |
Saved screen recordings |
πΉ The "Quick Launch" feature doesn't work for my app
Quick Launch (Option 16) uses am start to resolve and launch an app's main activity. If it fails:
- App may not have a launcher activity β some background services or system apps can't be launched this way.
- Try the full package name β make sure you're using the complete package (e.g.,
com.example.app, not justapp). - App might be disabled β check Option 14 to see if it's in the disabled list.
- Check logcat β use Option 13 to see what error Android reports when trying to launch.
πΉ How do I completely reset Waydroid?
If Waydroid is in a broken state:
# 1. Stop everything
waydroid session stop
sudo waydroid container stop
# 2. Reset the Waydroid data (WARNING: deletes all Android apps and data!)
sudo rm -rf /var/lib/waydroid /home/$USER/.local/share/waydroid
# 3. Re-initialize
sudo waydroid init
# 4. Start fresh
./waydroid-manager.sh
β οΈ Warning: This removes ALL Android apps, data, and settings. Back up important files first using the File Transfer tool (Option 12).
See CHANGELOG.md for the full release history.
Latest release: v0.8.0 (2026-03-04)
Contributions are welcome! Here's how you can help:
- π Report bugs β Open an issue with details and reproduction steps
- π‘ Suggest features β Describe your idea in an issue or start a discussion
- π§ Submit a PR β Fork the repo, make your changes, and open a pull request
- β Star the repo β It helps others discover the project!
Please join our Discord community for discussions, support, and updates.
This project is licensed under the MIT License. See the LICENSE file for the full text.
Copyright Β© 2026 Nigel Hagen
Built with care for the Waydroid community π