Waydroid: Difference between revisions

Onny (talk | contribs)
Onny (talk | contribs)
 
(3 intermediate revisions by the same user not shown)
Line 117: Line 117:
</syntaxhighlight>
</syntaxhighlight>


=== Notification forwarding ===
=== V4L2 camera forwarding ===


To forward notifications from the Waydroid container to the host system, [[KDE Connect]] can be used.
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"
];


On a Gnome-desktop, add following to your system config and enable:<syntaxhighlight lang="nix">
nixpkgs.overlays = [
programs.kdeconnect = {
  (self: super: {
  enable = true;
    waydroid = (inputs.nixpkgs-unstable.legacyPackages.x86_64-linux.waydroid.overrideAttrs (old: rec {
  package = pkgs.gnomeExtensions.gsconnect;
      version = "0-unstable-2026-04-26";
};
      src = pkgs.fetchFromGitHub {
</syntaxhighlight>Open the application ''Extensions'' and enable ''Gsconnect'' plugin there.
        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


Inside the Waydroid container, follow these steps:
</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 
* Download and install the [https://f-droid.org/en/packages/org.kde.kdeconnect_tp/ KDE Connect app]
waydroid shell -- pm disable-user --user 0 com.google.android.setupwizard
* Open the app and and start pairing with the host machine
waydroid shell -- pm disable-user --user 0 com.google.android.gms.setup
* You'll have to enable access to notifications by clicking on the corresponding entry in the permissions list inside the app
</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>.
* If you get the system message "''Restricted setting / For your security, this setting is currently unavailable''", you'll have to enable restricted settings. Go to Android settings app, in the apps list select KDE connect and click in the upper right corner on the three dot menu to ''Allow restricted settings''
* You may have to reboot the Waydroid container for notification forward to work.


=== 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