Waydroid tutorial
Gonna post the waydroid tutorial in here, just for a sanity check. Then it'll probably go on reddit. @KyleGospo @nickname
23 Replies
Just give me a minute because it's quite long
How to install Waydroid on Bazzite (Steam Deck and Desktop edition)
NOTE: FOR THE STEAM DECK I HIGHLY RECOMMEND USING AN EXTERNAL DESK SETUP TO GET THIS WORKING, AT MINIMUM A KEYBOARD AND MOUSE IS RECOMMENDED.
This guide also has a lot of copy pasting to terminal. To copy from terminal, you use ctrl+shift+c, to paste you use ctrl+shift+v
1. Disabling SELinux and enabling the Waydroid container
SELinux is a kernel module used by Fedora (and thus Bazzite) to increase security on a Linux system. Right now there is an issue which means Waydroid cannot be used alongside SELinux.
To disable SELinux, type
sudo nano /etc/selinux/config
into your terminal. Then, change the line that says SELINUX=enforcing
to instead be SELINUX=disabled
.
Then press ctrl+s, then ctrl+x to save and quit.
After this simply reboot.
Once rebooted, run this command sudo systemctl enable --now waydroid-container
after running the waydroid container will start and is set to run on any subsequent startup.
2. Initializing Waydroid
Initializing Waydroid just means installing android. To do so, run this command:
sudo waydroid init -c https://ota.waydro.id/system -v https://ota.waydro.id/vendor -s GAPPS -f
This installs android along with the google play store.
3. Starting Waydroid
You can now test waydroid for the first time! Simply open Waydroid from your launcher (Start menu). Be ready to move it out of the way or minimize it, because it's going to need to be open for the next few steps
4. Google Play Certification
With waydroid open, open a terminal window and run
sudo waydroid shell
Once you've entered the waydroid shell (It should just say :/ #
before your text cursor), enter the command:
ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
When you run this command, your terminal should output android_id|
and some numbers. Copy the numbers, then visit this website.
Paste the number in the box that says "Google Services Framework ID", answer the captcha (If one is present), then simply hit register. You should see a popup saying "Device Registered" in the bottom left.
You can now type exit
to leave the Waydroid shell.
5. Changing the resolution on Waydroid
Note: Changing DPI will be done on a later step. This is more relevant on the Steam Deck, just hold tight.
This is pretty easy! Just open up your terminal and enter the following commands. Just change the number at the end to fit whatever display resolution you are using, just as an example I'll show you the commands for 1280x800:
waydroid prop set persist.waydroid.width 1280
waydroid prop set persist.waydroid.height 800
We can now exit waydroid by running waydroid session stop
Congrats! If you're running on Bazzite Desktop you can stop here, unless you want ARM emulation in which case skip to Step 7 for those instructions. The following commands up until step X are purely for the Steam Deck.
6. Configuring Weston
Weston is a Wayland compositor, which we'll use to get Waydroid working properly in game mode.
First, in your terminal enter:
nano ~/.local/this-is-executable.sh
and then paste the following:
Then press ctrl+s and ctrl+x to save and exit.
Next, run this in your terminal:
sudo nano ~/.config/weston-waydroid.ini
Then paste:
Before saving, change USERNAME to your username, and both lines that say mode=1920x1080 to be your desired resolution instead (e.g. mode=1280x800)
Then press ctrl+s and ctrl+x to save and exit.
Finally, run this in your terminal:
sudo nano ~/.local/share/applications/weston-waydroid.desktop
Then paste the following:
Before saving, change USERNAME to your username.
Then press ctrl+s and ctrl+x to save and exit.
Then, run:
sudo chmod +x ~/.local/share/applications/weston-waydroid.desktop
and
sudo chmod +x ~/.local/this-is-executable.sh
Congrats! You can now add the weston app to steam (Press add a non-steam app, and it should be in the initial list)! Make sure to change the resolution for weston in game mode to match your display's resolution. It should do this by default however I've had issues with it doing so.
7. Adding ARM emulation and WideVine
You should now have successfully installed Waydroid, but you may still want to run ARM apps.
To do so, run the following commands:
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python -m venv venv
source venv/bin/activate
sudo pip install -r requirements.txt
sudo python main.py
Now, press enter to select Android 11, press enter to select Install, then press the up and down arrow keys and the space bar to select the following:
If you're on AMD, select libndk for ARM emulation
If you're on Intel, select libhoudini for ARM emulation
widevine (This allows for rudementary playback for DRM protected streaming services)
Once those are selected, press enter to begin the install. While installing, make sure not to open Waydroid.
Once they're installed, you're done! You can now use ARM apps! Just bare in mind this is emulation, so you're not guaranteed great performance. If you've got a fairly modern CPU it should be good though.
8. Waydroid config file (PPI, Fixing GPU stuf etc.)
To edit the waydroid config file type sudo nano /var/lib/waydroid/waydroid_base.prop
To adjust DPI, add this line on the end:
ro.sf.lcd_density=100
for the Steam Deck, change the number to 215
If on AMD or Intel GPU's (including the steam deck), change the line that says:
ro.hardware.gralloc=gbm
to instead be:
ro.hardware.gralloc=minigbm_gbm_mesa
That's it, you're done!
That's it allif this is MD
feel free to toss on the wiki
then you can link to that on reddit 🙂
MD?
markdown
Ohh, yeah it is
Which Wiki?

Ah, got it
This look good to you?
https://github.com/Gecked-Deck/bazzite_waydroid
GitHub
GitHub - Gecked-Deck/bazzite_waydroid: Tutorial to use Waydroid on ...
Tutorial to use Waydroid on Bazzite. Contribute to Gecked-Deck/bazzite_waydroid development by creating an account on GitHub.
If it's all fine feel free to take it for the Wiki
You can't push PR's for Github wiki's apparently
That's super annoying
I'll merge that in then, thanks!
Yeah it's frustrating
Ah wait hold on
Sorry I had to change some formatting with codeblocks should be ok now
Oh wait no
God damn it
Let me go through this, I'll let you know
Kk
I'm sitting on the edit screen then, whenever you're ready
I think I've done it, but I'm just doing a full readthrough.
Alright, pretty sure it's good to go.
GitHub
Setting up Waydroid
Bazzite is an OCI image that serves as an alternative operating system for the Steam Deck, and a ready-to-game SteamOS-like for desktop computers and living room home theater PCs. - ublue-os/bazzite
I'm going to make some more changes, I'll let you know sometime tomorrow when to copy them. Mainly just formatting changes.
Kk
Discord markdown isn't exactly the same as Github's, it's frustrating
@KyleGospo Waydroid instructions looks a lot better now. You can apply the changes whenever.
Will do
Did you bring in my changes to the selinux explanation?
No, I will add that now
Done
Sorry if my first explanation was a little lackluster. That stuff's just not really my jam.
No need to apologize, I just changed it to be as accurate as possible
It's a very obscure problem upstream
Lmk when the changes are put on the Wiki 👍
@Crush done
Thanks ❤️