Ultimate Guide to install Waydroid in any Arch-based distro(especially Garuda)

WAYDROID, formerly referred to as Anbox-Halium, is a rebuild of Anbox, intended to use more of the native host’s hardware, resulting in faster performance than Anbox.


Though you might be able to follow the above guides and get Waydroid running,
you might probably get stuck somewhere and find it all confusing, just like I was before getting it running.
The instructions are all the more similar to that for getting anbox running!

These steps should definitely work for everyone, and I have ensured everything step is explained well enough so that even someone new to Linux can do it!

  1. Install anbox-modules-dkms
    sudo pacman -S anbox-modules-dkms

  2. Reboot

  3. Setting up Kernel Modules:

i) To enable module loading at boot(Kernel module - ArchWiki):
create a file inside /etc/modules-load.d/, which contains the lines:
(sudo nano /etc/modules-load.d/waydroid.conf)



(Save and exit)

ii) Load Modules(Kernel module - ArchWiki):
sudo modprobe -a binder-linux ashmem-linux

iii) To enable creating mount point of binderfs at boot(systemd - ArchWiki):
create a file in /etc/tmpfiles.d/ with the content:
(sudo nano /etc/tmpfiles.d/waydroid.conf)


d! /dev/binderfs 0755 root root

(Save and exit)

iv) Mount binderfs:
(mkdir(1) — Arch manual pages)
(mount(8) — Arch manual pages)

  • sudo mkdir -p /dev/binderfs
  • sudo mount -t binder none /dev/binderfs

v) To enable mounting binderfs at boot, add a line in the fstab. Using the option nofail here will not greet you with a recovery shell when you are booting a kernel without binderfs support (such as the standard kernel):
(sudo nano /etc/fstab)


none                         /dev/binderfs binder   nofail  0      0


There is an anbox-support package(For Garuda Users) which pulls dependencies, sets the required configs in place and gives instructions on how to complete the setup (/etc/fstab, for example, needs to be edited manually).

vi) Now to check the required modules are loaded and mounted automatically on boot, run:
sudo ls -1 /dev/{ashmem,binderfs}

It should give somewhat similar output:

❯ sudo ls -1 /dev/{ashmem,binderfs}


  1. Wayland
    Waydroid only works in a Wayland session manager, so make sure you are in a Wayland session.
    Note that even if you are in X11, many Wayland session manager supports nested session (so you can run it inside your X11 session); the simplest example is weston.

  2. Setting up Waydroid:

  • Install Waydroid (available in chaotic-aur for Garuda users):
sudo pacman -Syu waydroid && sudo waydroid init 
  • After installing, you will want to start the waydroid-container service
sudo systemctl start waydroid-container
  • Then launch waydroid container:
sudo waydroid container start
  • And launch the session:
waydroid session start
  • Then launch the waydroid app in full UI mode by running the Waydroid app in the app drawer or through the terminal:
waydroid show-full-ui
  • For network in your Waydroid container:
    Please check this out:
    Network in Waydroid

  • Install an application:

waydroid app install $path_to_apk

Happy New Year 2022!
:partying_face: :confetti_ball:


Does the guidance on the Arch wiki page not work?


Some instructions are lacking in the Arch wiki, specifically regarding the automatic mounting of binderfs on boot, which is where most people get stuck.

Rest, everything is well documented in the Arch wiki

Thank you, @Austin, Have you tested this procedure, and what were your personal results? Any further hints?

Feliz Ano Nuevo!

1 Like

Happy New Year @c00ter!

I have well tested this procedure, and I have covered every issue I was facing while doing so, and I have Waydroid up and running:


I am able to launch waydroid fine, but it will not connect to wifi. Wifi is disabled by default and enabling it in settings does nothing, then after a little bit disables itself again.

I'm not sure where I can find logs for this or see the reason. I ran the ufw commands in the arch wiki, but I'm not sure they did anything. Is ufw the firewall Garuda (KDE Dragonized) uses?

Well, ufw is a tool for managing firewalls, and there are other tools as well,

for example, firewalld, which is I think is the default one for Garuda.

In the Arch wiki, they have taken ufw as an example:

Taking ufw as an example:

  • Dns traffic needs to be allowed:
    • # ufw allow 67
    • # ufw allow 53
  • Packet forwarding needs to be allowed:
    • # ufw default allow FORWARD

If you know the firewalld equivalent of the above, you can apply them or switch from firewalld to ufw:


sudo pacman -Rns firewalld
sudo pacman -S ufw
sudo ufw enable

If someone knows the equivalent of firewalld of the above instructions, please do share it in this thread

I hope the solves the issue.

Recently Waydroid has started to freeze the entire system on running it and I have to do a force reboot.

Is anyone else facing this issue?

My logs:

(493643) [09:06:06] % mkdir -p /var/lib/waydroid/lxc/waydroid
(493643) [09:06:06] % cp -fpr /usr/lib/waydroid/data/configs/config_2 /var/lib/waydroid/lxc/waydroid/config
(493643) [09:06:06] % sed -i s/LXCARCH/x86_64/ /var/lib/waydroid/lxc/waydroid/config
(493643) [09:06:06] % mv /var/lib/waydroid/config_nodes /var/lib/waydroid/lxc/waydroid
(499570) [09:08:10] % chmod 666 -R /dev/binder
(499570) [09:08:10] % chmod 666 -R /dev/vndbinder
(499570) [09:08:10] % chmod 666 -R /dev/hwbinder
(499570) [09:08:10] Container manager is waiting for session to load
(499594) [09:08:24] Starting waydroid session
(499594) [09:08:24] Save session config: /var/lib/waydroid/session.cfg
(499594) [09:08:24] UserMonitor service is not even started
(499594) [09:08:24] Clipboard service is not even started
(499594) [09:10:05] waydroidusermonitor: Received transaction: 1
(499594) [09:10:05] Android with user 0 is ready
(000581) [09:13:18] % mkdir -p /dev/binderfs
(000581) [09:13:18] % mount -t binder binder /dev/binderfs
(000581) [09:13:18] % ln -s /dev/binderfs/anbox-hwbinder /dev/binderfs/anbox-vndbinder /dev/binderfs/anbox-binder /dev/binderfs/features /dev/binderfs/vndbinder /dev/binderfs/hwbinder /dev/binderfs/binder /dev/binderfs/binder-control /dev/
(000581) [09:13:18] % chmod 666 -R /dev/binder
(000581) [09:13:18] % chmod 666 -R /dev/vndbinder
(000581) [09:13:18] % chmod 666 -R /dev/hwbinder
(000581) [09:13:18] Found session config on state: RUNNING, restart session
(000581) [09:13:18] Container manager is waiting for session to load
(033944) [09:21:03] % tail -n 60 -F /var/lib/waydroid/waydroid.log
(033944) [09:21:03] *** output passed to waydroid stdout, not to this log ***

hi im getting this eror while trying to start waydroid container saying
XDG session is not wayland. how do i change my session to wayland? im on garuda cinnamon edition. tnx in advance.

I think cinnamon doesn't currently support, you would have to use kde or gnome.

Check out weston

ok tnx ima try weston

i couldn't get it working can you tell me what version of garuda your in?

There is no versioning of Garuda, it's a rolling distro

I will check it when I get time

i meant are you using kde or xfce what desktop enviroment are you using soory for bothering you.

1 Like

I am using KDE, which already has a Wayland session.

When you get this error first ensure this command is already running on a different tab of the terminal sudo waydroid container start. Then on your current tab fire up Weston, then at the top left side of the Weston window you'll see an icon to launch a terminal within Weston. So go ahead and launch and type this command, kwin_wayland "waydroid session start" Now here's a tip, just let the command simmer for around 10 mins, so that the droid can come to life. I should mention I have tried this on Garuda KDE. Cheers!

So I'm trying to make it work on a KDE Wayland session. 1st console I run:

  1. sudo systemctl start waydroid-container
    it is running

2. sudo waydroid container start
it stays black, like is loading something

so I open a 2nd konsole and run
3. waydroid session start

Are you suggesting me @general_zod to wait for 10 minutes the 1st konsole in the step 2 to give me some output instead of going for a 2nd konsole?
I have a 3rd konsole running waydroid log to debug this somehow because I can't simply make it work.
When I try in a 3rd konsole waydroid show-full-ui I get no results too.

EDIT: Just read their documentation and it's not compatible with NVIDIA cards. I guess that was my problem after all.

1 Like

not quite right buddy,

  1. once you run sudo waydroid container start,

  2. Launch a second terminal and type weston then hit enter, you may need to install weston if you haven't yet done so already.

  3. Once weston is up and running, find a terminal icon at the top left side of the weston compositor, launch that terminal then type kwin_wayland "waydroid session start" and let your android boot up and that usually takes about 10 minutes give or take.

N.B: If you try to run waydroid session start and you're in KDE you're more than likely to receive the error, XDG Session is not "wayland" this is because WAYdroid natively supports the WAYland compositor found in Gnome, and so as a work around we use weston in KDE as a reference implementation, of a Wayland Compositor.

@general_zod I'm running a KDE Wayland Session. Wouldn't that be enough instead of Weston?

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.