Difference between revisions of "WayDroid"
From NixOS Wiki
(Restructure page) |
|||
Line 1: | Line 1: | ||
− | WayDroid is an application which uses LXC containers to run Android applications on a non-Android system. | + | [https://waydro.id 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|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.}} | {{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). | We will need to enable the WayDroid and LXD options (the WayDroid module enables LXC). | ||
Line 18: | Line 18: | ||
</nowiki>}} | </nowiki>}} | ||
− | + | Apply changes | |
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# Rebuild NixOS config. | # Rebuild NixOS config. | ||
nixos-rebuild switch | nixos-rebuild switch | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | You'll need to finish the WayDroid install in your shell. | ||
+ | <syntaxhighlight lang="bash"> | ||
# Fetch WayDroid images. | # Fetch WayDroid images. | ||
# You can add the parameters "-s GAPPS -f" to have GApps support. | # You can add the parameters "-s GAPPS -f" to have GApps support. | ||
Line 40: | Line 43: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | == | + | == Usage == |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
# Start Android UI | # Start Android UI | ||
Line 68: | Line 59: | ||
waydroid prop set persist.waydroid.width 608 | waydroid prop set persist.waydroid.width 608 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | |||
+ | == Troubleshooting == | ||
+ | |||
+ | === 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>}} | ||
+ | |||
+ | === 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: | ||
+ | {{file|/var/lib/waydroid/waydroid_base.prop|prop|<nowiki> | ||
+ | sys.use_memfd=true | ||
+ | </nowiki>}} | ||
==See Also:== | ==See Also:== | ||
− | [https://wiki.archlinux.org/title/Waydroid Arch Wiki] | + | * [https://wiki.archlinux.org/title/Waydroid Arch Wiki] |
Revision as of 16:36, 16 September 2022
WayDroid is an application which uses LXC containers to run Android applications on a non-Android system.
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 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
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
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