/SteamOS-Waydroid-Installer

Script to easily install / uninstall Android via Waydroid on the Steam Deck running on SteamOS.

Primary LanguageShell

SteamOS Android Waydroid Installer

A collection of tools that is packaged into an easy to use script that is streamlined and tested to work with the Steam Deck running on SteamOS.

NOTE
If you are going to use this script for a video tutorial, PLEASE reference on your video where you got the script! This will make the support process easier! And don't forget to give a shoutout to @10MinuteSteamDeckGamer / ryanrudolf from the Philippines!

If you like my work please show support by subscribing to my YouTube channel @10MinuteSteamDeckGamer.
I'm just passionate about Linux, Windows, how stuff works, and playing retro and modern video games on my Steam Deck!

Monetary donations are also encouraged if you find this project helpful. Your donation inspires me to continue research on the Steam Deck! Clover script, 70Hz mod, SteamOS microSD, Secure Boot, etc.

Scan the QR code or click the image below to visit my donation page.

Disclaimer

  1. Do this at your own risk!
  2. This is for educational and research purposes only!

Click the image below for a video tutorial and to see the functionalities of the script!

What's New (as of Oct 28 2024)

  1. Support for latest SteamOS Stable 3.6.19
  2. fixed binder kernel module parameters
  3. enhancement - ability to choose with / without Google Playstore on a fresh install
  4. enhancement - automatically activate mantis gamepad pro and shizuku
  5. enhancement - disable root detection (some apps might still detect root)
  6. enhancement - disable first time setup wizard
  7. enhancement - Waydroid Toolbox - added NETWORK option
  8. enhanceement - Waydroid Toolbox - updated ADBLOCK option

What's New (as of Oct 10 2024)

  1. add support for latest SteamOS Beta 3.6.16 / 3.6.17
  2. add sanity check for home and var partition - make sure home has at least 5GB free space, and var has at least 100MB free space
  3. add / fix verbose messages
  4. trim output of steamos-add-to-steam

What's New (as of Sep 07 2024)

  1. support for SteamOS 3.6.12

What's New (as of Aug 27 2024)

  1. support for SteamOS 3.6.10
  2. added experimental waydroid launcher that supports rotation - demo here
  3. Waydroid Toolbox - option to uninstall waydroid and retain android user data, or full uninstall of waydroid including android user data

What's New (as of Aug 09 2024)

  1. support for SteamOS 3.6.9
  2. waydroid bump from 1.4.2 to 1.4.3
  3. lxc bump from 0.2 to 0.3
  4. binder kernel môdule re-built using latest May26 commits
  5. cleanup the binder kernel folder names so its easier to read
  6. remove libndk-fixer (not needed anymore for Roblox)
  7. Add sanity check on the waydroid launcher

What's New (as of May 28 2024)

  1. Fix for scoped storage permission issue. Apps can now write to data / obb folder. FIFA 14 now works because of this!

What's New (as of May 05 2024)

  1. Minor fix - make minigbm_gbm_mesa as default. This should make Roblox performance better.
  2. Waydroid Toolbox - added option to toggle between gbm or minigbm_gbm_mesa.
  3. Added verbose error message when Waydroid initialization fails during install.

Updated Waydroid Toolbox to easily configure some aspects of Waydroid image

What's New (as of May 01 2024)

  1. Roblox now works thanks to slappy826! demo guide here how to configure Roblox
  2. Updated the Waydroid Toolbox script
  3. code cleanup / additional logic
  4. switch from gbm to minigm_gbm_mesa

What's New (as of April 25 2024)

  1. This works with latest stable SteamOS 3.5.19. There is no kernel change for SteamOS - it still uses 6.1.52-valve16-1 so this works right away no need for new kernel modules.
    SteamOS has been stuck on 6.1.52-valve16-1 for several releases now so I think this will stay and next major bump will be on SteamOS 3.6.x.

What's New (as of March 09 2024)

  1. Updated launcher to easily run APKs in Game Mode. demo guide here
  2. Fix minor typo in uninstall - this now removes the Waydroid application entries in the KDE menu.
  3. Added Waydroid Toolbox to easily configure some aspects of Waydroid. image

What's New (as of February 11 2024)

  1. Added support for latest SteamOS Preview 3.5.15 - kernel 6.1.52-valve16-1-neptune-61

What's New (as of February 10 2024)

  1. lower audio latency
  2. added more sanity checks

What's New (as of February 07 2024)

  1. removed weston. been testing cage for several weeks now and this is way better than weston.
  2. added custom hosts file to block ads

Install Steps

Read the sections below carefully!

Prerequisites for SteamOS

  1. sudo password should already be set by the end user. If sudo password is not yet set, the script will ask to set it up.

NOTE IF YOU ARE USING AN OLDER VERSION OF MY SCRIPT FROM 2023!

  1. Uninstall first if you are using an older version from 2023.
  2. If you are using my script from 2024 onwards no need to uninstall - just clone the repo to get the latest version and install it.

How to Use

  1. Go into Desktop Mode and open a konsole terminal.
  2. Clone the github repo.
    cd ~/
    git clone https://github.com/ryanrudolfoba/steamos-waydroid-installer
  3. Execute the script!
    cd ~/steamos-waydroid-installer
    chmod +x steamos-waydroid-installer.sh
    ./steamos-waydroid-installer.sh
  4. Script will automatically install Waydroid together with the custom config. Install will roughly take around 5mins depending on the internet connection speed.
  5. Once done exit the script and go back to Game Mode.

Launching Waydroid

  1. Go to Game Mode.
  2. Run the Android_Waydroid_Cage launcher.

Steam Deck Controller Layout

Thanks to DanielLester83!

Search 'Waydroid' in the community templates or maybe this link would work steam://controllerconfig/3665077347/3304296813

This maps the back buttons to function keys for use with android key remappers like this https://github.com/keymapperorg/KeyMapper

This work around seems to be needed because steaminput does not seem to pass the Search/OS/Windows/Meta Key to Android.

This layout also tweaks the trackpad inputs.

Configure Android Start Menu Shortcuts to Work in Desktop Mode

NOTE: This is purely optional and doesn't affect the functionality of Waydroid if you don't do the steps.
Personally I don't need it but for those that do then this is what you need -

Thanks to DanielLester83 for the instructions!

I dont want this anymore! I want to uninstall!

  1. Go to Desktop Mode.
  2. There will be an icon called Waydroid Toolbox on the desktop.
  3. Launch that icon and select UNINSTALL. image

Troubleshooting / Filing Bug Reports

  1. If you encounter an issue with the script, try to uninstall, clone the repo again and perform an install.
    Reason for that - you might be using an older version of my script and a new version might have already fixed your issue.
  2. If uninstall / reinstall didn't help, open an issue and please be descriptive as possible.
    At the minimum include this when filing an issue -
    SteamOS version -
    Error message encountered -
    Screenshot of error -
    Do you have any scripts / tweaks that might be causing issues?
  3. Downloads are slow when acquiring the waydroid image. This is similar to this issue.
    Answer - You might have connected to a slow sourceforge mirror. Press CTRL-C to cancel the download and re-run the script again.
  4. No shortcuts in Game Mode after running the script / Unsupported File Type when adding shortcuts. This is similar to this issue.
    Answer - This issue happens if Steam client cant be run because the script was called from an ssh or virtual tty session. Make sure to run the script on Desktop Mode via konsole.

A Note on SteamOS Updates

When there is a SteamOS update the waydroid will be wiped. This is normal behavior due to how SteamOS applies updates.
Re-run the script again but if the SteamOS update contains a new kernel version the script will exit immediately.
Please file an issue report when this happens so I can compile a binder kernel module to match the SteamOS update.

Geekbench Benchmark Result Between OLED and LCD on SteamOS Android Waydroid

Geekbench Result - Feb 11 2024

List of Games Tested Working with Demo Gameplay

This is a Work in Progress - list will be updated accordingly.
If you wish to contribute, please check the google sheets and include the game name, how it runs etc etc.

Games Tested By Me on Android Waydroid Steam Deck

Plants vs Zombies - Feb 04 2024
Honkai Star Rail - Feb 06 2024
Asphalt 8 Airborne - Feb 08 2024
Honkai Impact 3rd - Feb 10 2024
Mobile Legends - Feb 13 2024
T3 Arena - Feb 16 2024
Warcraft Rumble - Feb 19 2024
Diablo Immortal - Feb 21 2024
Oceanhorn - Feb 23 2024
Candy Crush Saga - Mar 11 2024
BombSquad - Mar 16 2024
Project BloodStrike - Mar 18 2024
NBA Infinite - Mar 23 2024
Roblox - May 01 2024
Plants vs Zombies 2 - Reflourished - May 17 2024
Wuthering Waves - May 23 2024
FIFA 14 - May 28 2024
KOF Arena / King of Fighters Arena - June 18 2024
Injustice - July 12 2024
Wuthering Waves using patched LIBNDK - Aug 01 2024
Roblox x86 APK - Aug 03 2024
Blue Archive using patched LIBNDK - Aug 27 2024

Games Tested by Other Users

Please check this google sheets for games tested by other users.
Please feel free to add your game testing in there too! Thank you!

Mini-guides for Steam Deck Android Waydroid

This mini guides are tailor-fitted for the Steam Deck that uses the script provided in this repo.
How to Sideload APKs
How to Upgrade the Android Image
How to Configure Fake Wi-Fi
How to Configure Fake Touchscreen / Configure Mouse Clicks as Touchscreen Input
How to Launch APKs Directly in Game Mode
Configure for 1080p When in Docked Mode
Configure sdcard as Main Storage for Waydroid
Activate and Configure Mantis Gamepad Pro
How to Configure Roblox
How to Access the OBB Folder / How to Root
How to Rotate Waydroid