Waydroid: Difference between revisions

From NixOS Wiki
imported>Fedx
No edit summary
imported>PedroHLC
Enable it through the service because of the environment; add the GApps support parameters; Teach how to know if it worked; Add GPU Adjustments
Line 5: Line 5:
== Install: ==
== Install: ==


We will need to enable the WayDroid and LXC services.  
We will need to enable the WayDroid and LXD options (the WayDroid module enables LXC).


{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
Line 12: Line 12:
   virtualisation = {
   virtualisation = {
     waydroid. enable = true;
     waydroid. enable = true;
    lxc.enable = true;
     lxd.enable = true;
     lxd.enable = true;
   };
   };
Line 18: Line 17:
</nowiki>}}
</nowiki>}}


From here you will need to finish the WayDroid install in your shell.  
You'll need to finish the WayDroid install in your shell.  


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
# Rebuild NixOS config.
# Rebuild NixOS config.
nixos-rebuild switch
nixos-rebuild switch
# Fetch WayDroid images.  
 
# Fetch WayDroid images.
# You can add the parameters "-s GAPPS -f" to have GApps support.
sudo waydroid init
sudo waydroid init
#start the WayDroid LXC container
 
sudo waydroid container start
# Before the following steps, you might need to do some GPU adjustments. See the next section.
 
# Start the WayDroid LXC container
sudo systemctl start waydroid-container
# You'll know it worked by checking the journal You should see "Started Waydroid Container".
sudo journalctl -u waydroid-container
 
# Start WayDroid session
# Start WayDroid session
# You'll know it is finished when you see the message "Android with user 0 is ready".
waydroid session start
waydroid session start
</syntaxhighlight>
</syntaxhighlight>
==GPU Adjustments==
In case you have an NVIDIA card or an RX 6800 series, you'll need to disable GBM and mesa-drivers:
{{file|/var/lib/waydroid/waydroid_base.prop|prop|<nowiki>
ro.hardware.gralloc=default
ro.hardware.egl=swiftshader
</nowiki>}}


==Usage==
==Usage==

Revision as of 15:01, 8 May 2022

WayDroid is an application which uses LXC containers to run Android applications on a non-Android system.

Warning: WayDroid requires a Wayland desktop session and cannot be used on X11.

Install:

We will need to enable the WayDroid and LXD options (the WayDroid module enables LXC).

/etc/nixos/configuration.nix
{ pkgs, ... }:
{
  virtualisation = {
    waydroid. enable = true;
    lxd.enable = true;
  };
}

You'll need to finish the WayDroid install in your shell.

# Rebuild NixOS config.
nixos-rebuild switch

# Fetch WayDroid images.
# You can add the parameters "-s GAPPS -f" to have GApps support.
sudo waydroid init

# Before the following steps, you might need to do some GPU adjustments. See the next section.

# Start the WayDroid LXC container
sudo systemctl start waydroid-container
# You'll know it worked by checking the journal You should see "Started Waydroid Container".
sudo journalctl -u waydroid-container

# Start WayDroid session
# You'll know it is finished when you see the message "Android with user 0 is ready".
waydroid session start

GPU Adjustments

In case you have an NVIDIA card or an RX 6800 series, you'll need to disable GBM and mesa-drivers:

/var/lib/waydroid/waydroid_base.prop
ro.hardware.gralloc=default
ro.hardware.egl=swiftshader

Usage

# Start Android UI
waydroid show-full-ui
# Start an Android app
waydroid app start <application name>
# Install an Android app
waydroid app install </path/to/app.apk>
# List Android apps
waydroid app list
# Enter the LXC shell
sudo waydroid shell

See Also:

Arch Wiki