Waydroid: Difference between revisions

From NixOS Wiki
imported>Hall
mNo edit summary
imported>Onny
Restructuring page
Line 30: Line 30:
# You can add the parameters "-s GAPPS -f" to have GApps support.
# You can add the parameters "-s GAPPS -f" to have GApps support.
sudo waydroid init
sudo waydroid init
</syntaxhighlight>


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


== Usage ==
Start the container
<syntaxhighlight lang="bash">
# Start the WayDroid LXC container
# Start the WayDroid LXC container
sudo systemctl start waydroid-container
sudo systemctl start waydroid-container
Line 43: Line 49:
</syntaxhighlight>
</syntaxhighlight>


== Usage ==
General usage


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">

Revision as of 14:23, 17 September 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.
Warning: Installing WayDroid on your system before running nixos-generate-config will create unnecessary fstab entries that may interfere with system functionality.

Installation

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;
  };
}

Apply changes

# Rebuild NixOS config.
nixos-rebuild switch

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

# 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 troubleshooting section.

Usage

Start the container

# 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

General 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
# Overrides the full-ui width
waydroid prop set persist.waydroid.width 608

Resetting Android Container

Warning: All files of your Android container will be lost


# Stop Waydroid container
sudo systemctl stop waydroid-container

# Removing images and user data
sudo rm -r /var/lib/waydroid/* ~/.local/share/waydroid

Troubleshooting

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

Linux 5.18+

Linux 5.18 and later removed ashmem in favor of memfd, right now you need to tell waydroid (1.2.1 and later) to use the new module:

/var/lib/waydroid/waydroid_base.prop
sys.use_memfd=true

See Also: