- GUI file/folder picker for File Transfer (Option 13). Uses
zenityto browse and select remote files and directories over ADB; falls back to manual path input whenzenityis unavailable. remote_browse()helper function to navigate the Android filesystem from the host.
- Fixed scoping bug where
remote_browse()was nested and unavailable in the File Transfer flow; moved to top-level. - Minor README and changelog updates and version bump.
- Realtime Resource Monitor (Option 19): Now updates CPU, RAM, and Disk usage in-place every second, providing a true live dashboard. Press any key to exit.
- Session Attach: 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.
- No more false "Waydroid is not running" errors when attached to a session.
- Resource monitor: No longer scrolls; updates stats in-place for a clean dashboard look.
- Screenshot Capture (Option 10): Take a screenshot of the Android screen via ADB and save it to
~/Pictures/Waydroid/. Offers to open the image after capture. - Screen Recording (Option 11): Record the Android screen (up to 180 seconds) and save to
~/Videos/Waydroid/. Offers to open the video after recording. - File Transfer (Option 12): Push files to or pull files/folders from Android. Supports zenity file picker dialogs or manual path entry.
- Logcat Viewer (Option 13): View live logcat output, save last 500 lines to file, filter by tag, or show errors only.
- Freeze/Disable Apps (Option 14): Disable (freeze) apps without uninstalling, re-enable them later, and list all disabled packages. Uses zenity app picker when available.
- Clear App Data/Cache (Option 15): Clear all data or just cache for a selected app. Supports zenity app picker.
- Quick Launch App (Option 16): Launch any installed third-party app by selecting its package name.
- Device Info Panel (Option 17): Comprehensive device overview showing Android version, SDK level, display resolution/density, storage, memory, network, uptime, and installed package count.
- Reorganized main menu: Options grouped into four sections β Core, ADB, Settings & Apps, Tools, and System β for easier navigation.
- Menu now has 21 options: Previous options 10-13 renumbered to 18-21 (Status, Theme, Check for Updates, Exit).
- DRY refactor: Replaced repetitive "Waydroid not running" checks in the case statement with a shared
_require_runninghelper function.
- Auto-detect existing sessions on launch: The script now checks if Waydroid is already running or ADB devices are connected at startup, displays session info, and offers to connect automatically.
- Update check shows GitHub URL: When an update is available, the GitHub repository URL is displayed in the console and the user is prompted to open it in their default browser (
xdg-open). - Weston compositor window focus: Before showing APK install dialogs, the Weston compositor window is brought to the foreground via
xdotool(matched by window class, not name, to avoid focusing unrelated windows). - Clear terminal on startup: The terminal is cleared before the script begins for a clean launch experience.
- Option 1 renamed: "START/RESTART Waydroid Full Stack" β "START/RESTART Waydroid".
- Option 12 changed: "SELF UPDATE" (git pull) replaced with "CHECK FOR UPDATES" β now runs the same GitHub version check as the startup update prompt.
- Zenity dialogs use
--modal: All APK install zenity dialogs now use--modalto stay on top of the Weston window. - Fix: Version/colors defined before update check:
SCRIPT_VERSION,RELEASE_DATE, and color variables are now defined at the top of the script beforecheck_for_updates()is called, fixing the empty "Current:" display in the update prompt.
xdotoolis now used (optional) for Weston window focusing. Install withsudo apt install xdotool.
- Added: Batch APK installer (
--install-apks-dir) to install all.apkfiles from a directory (interactive + CLI), with per-APK logging and a summary report. - Added: Batch uninstall from file (
--uninstall-list) and interactive multi-select batch uninstall. - Added: Confirmation helper and
--yes|-yoverride for scripting/automation of destructive actions. - Added: Download verification (Content-Length check) and sha256 logging for APK downloads.
- Added: Separate
install.loganduninstall.logfiles and rotation support. - Added: Theme toggle (light/dark) with persistence to
~/.config/waydroid-manager.confand an interactive theme chooser. - Added: Tablet and Ultra-wide resolution presets (1200x1920, 3440x1440).
- Changed: Bumped script to v0.5.1 and documented new CLI flags in
README.md.
- Released v0.4.0: includes copy/paste special-character fix, UI header version/date, and
--versionCLI flag. See entries below for details.
- Option 9 (Copy/Paste to Android): properly escape shell metacharacters (e.g.
&,|,;,<,>,$, backticks and backslashes) so special characters are transmitted correctly to Android when usinginput text. UpdatedREADME.mdto note that special characters are supported, and added guidance for testing. - Minor: Improved robustness of text escaping to avoid clobbering backslashes.
- UI header now displays the script version and release date for easier identification when running the manager.
- CLI:
--version/-vsupport to print the script version and release date and exit. Version is embedded in the script (SCRIPT_VERSION) rather than a separateVERSIONfile.
- Restart logic now robustly handles Weston and Wayland socket lifecycle, ensuring clean shutdown and startup.
- Weston is now always launched with the X11 backend (
--backend=x11-backend.so), fixing fatal errors when running under X11 sessions. - Improved error reporting: if Weston fails to start, the script logs and displays the error output for easier debugging.
- These changes resolve issues where the UI would not relaunch after a restart, and provide clear diagnostics if Weston or the Wayland socket fails.
All notable changes to this project are documented here.
- Option 9 (Copy/Paste to Android) now only accepts plain text input from the terminal. The script clearly instructs users to open and focus the input field on Android before sending text, and warns that only plain text is supported (files or non-text data will not work).
- Removed all GUI/Zenity prompts from the copy/paste flow for a more reliable terminal-only experience.
- This update improves clarity and reliability for users who need to send text to Android via ADB, especially in non-GUI environments.
This release consolidates a series of improvements made since commit 3553f3a up to the current HEAD. Highlights include new UX flows, safety checks, clipboard helpers, APK installer enhancements, and documentation updates.
- Zenity-based graphical "Uninstall from list" dialog for selecting apps to uninstall.
- APK installer: choice to install from a local APK file or a direct URL (downloads to
/tmpthen installs). copy_paste_to_androidhelper: prompts for text (Zenity if available, otherwise terminal) and copies to the host Wayland clipboard usingwl-copyfor easy pasting into Android.- Display settings: added "Reset Display Settings" which runs
sudo waydroid shell wm size resetandsudo waydroid shell wm density reset. - Full README and installation updates (instructions to install required packages for full functionality).
- Main menu safety: critical options (stop, install, scripts, reconnect, display, app management, copy/paste) now check that Waydroid is running and provide guidance to start it (option 1) if not.
- APK-from-URL flow: added download logic with
curl/wgetfallback and guidance for validating downloaded APKs; script now handles common download failures more gracefully. - Copy/paste: Zenity input now attempts to set
WAYLAND_DISPLAY/DISPLAYwhen needed and falls back to terminal input; script validates presence ofwl-copy. - Menu renumbering and UX polish (exit and copy/paste option numbering adjusted, consistent prompts and pause screens).
- Improved ADB reconnect and device-check logic used across app-management flows.
wl-clipboard(wl-copy) is required for the copy/paste helper on Wayland. The script will tell users to install it if missing.zenityis optional; the script falls back to terminal input when GUI dialog commands fail.- APK downloads must point to direct
.apkfiles (no HTML redirects). Usecurl -fLorwget -Oto test downloads if needed.
- See earlier commits for historical changes.