Waydroid: Difference between revisions
Restructuring and cleanup |
|||
| (5 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
{{Warning|Waydroid requires a [[Wayland]] desktop session and cannot be used on X11 directly, but can be run in a nested [[Wayland]] session, using e.g. [https://www.hjdskes.nl/projects/cage cage].}} | {{Warning|Waydroid requires a [[Wayland]] desktop session and cannot be used on X11 directly, but can be run in a nested [[Wayland]] session, using e.g. [https://www.hjdskes.nl/projects/cage cage].}} | ||
== Installation == | == Installation == | ||
{{Warning|Installing Waydroid on your system before running nixos-generate-config will create unnecessary fstab entries that may interfere with system functionality.}} | |||
Enable Waydroid in your system configuration: | Enable Waydroid in your system configuration: | ||
| Line 31: | Line 32: | ||
== Usage == | == Usage == | ||
Start the container | Start the container and userspace Wayland session. You'll know it is finished when you see the message "Android with user 0 is ready". | ||
<syntaxhighlight lang="console"> | <syntaxhighlight lang="console"> | ||
$ sudo systemctl start waydroid-container | $ sudo systemctl start waydroid-container | ||
$ waydroid session start | $ waydroid session start | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 66: | Line 60: | ||
$ waydroid prop set persist.waydroid.width 608 | $ waydroid prop set persist.waydroid.width 608 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Maintenance == | == Maintenance == | ||
| Line 124: | Line 117: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
=== | === V4L2 camera forwarding === | ||
Camera forwarding using V4L2 is broken on upstream, but can be achieved by using the Waydroid images of the [https://github.com/WayDroid-ATV Waydroid-ATV project]. Further we also need an unstable Waydroid version (>1.6.2) for running it.<syntaxhighlight lang="nix"> | |||
disabledModules = [ | |||
"virtualisation/waydroid.nix" | |||
]; | |||
imports = [ | |||
"${inputs.nixpkgs-unstable}/nixos/modules/virtualisation/waydroid.nix" | |||
]; | |||
nixpkgs.overlays = [ | |||
(self: super: { | |||
waydroid = (inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.waydroid.overrideAttrs (old: rec { | |||
version = "0-unstable-2026-04-26"; | |||
src = pkgs.fetchFromGitHub { | |||
owner = "waydroid"; | |||
repo = "waydroid"; | |||
rev = "9478d59ad5c83b22478594e73d5879b93200fcb2"; | |||
hash = "sha256-L4qU5TSWavxvyPUqVV00NCd0YZqAaKPWTe3dR/q15LE="; | |||
}; | |||
})); | |||
}) | |||
]; | |||
</syntaxhighlight>You might [[Waydroid#Resetting Android Container|need to reset]] your existing Waydroid environment. Then stop the container and fetch the latest Waydroid-ATV images.<syntaxhighlight lang="bash"> | |||
systemctl stop waydroid-container | |||
waydroid init -f \ | |||
-c https://waydroid-atv.github.io/ota/a16-qpr2/system \ | |||
-v https://waydroid-atv.github.io/ota/a16-qpr2/vendor \ | |||
-r lineage \ | |||
-s GAPPS | |||
systemctl start waydroid-container | |||
waydroid session start | |||
</syntaxhighlight>In case the graphical interface wont show up or the setup wizard fails you can do<syntaxhighlight lang="bash"> | |||
waydroid shell -- am start -a android.intent.action.MAIN -c android.intent.category.HOME | |||
waydroid shell -- pm disable-user --user 0 com.google.android.setupwizard | |||
waydroid shell -- pm disable-user --user 0 com.google.android.gms.setup | |||
</syntaxhighlight>In case the camera access will crash the Waydroid container, there's a recent image which solves this on AMD GPUs. Download it and extract the contents to <code>/etc/waydroid-extra/images</code>. After that recreate the environment as mentioned above but only issue <code>waydroid init -f</code>. | |||
=== Running applications that differ from the current host architecture via libhoudini or libndk<ref>Need help with activating libhoudini for waydroid on NixOS | === Running applications that differ from the current host architecture via libhoudini or libndk<ref>Need help with activating libhoudini for waydroid on NixOS | ||