Running Android apps on a Linux desktop has gone from “technically possible but awful” to “genuinely usable” thanks to Waydroid, a container-based Android runtime that uses the host Linux kernel to run a full Android system without the overhead of an emulator. On Ubuntu 24.04 with a Wayland session, Waydroid delivers hardware-accelerated Android 13, windowed app support, clipboard sharing, and even Google Play Store access โ provided you are willing to spend fifteen minutes on setup. This guide covers the full installation, GPU passthrough configuration, Play Store integration, and the real-world limitations we have encountered after six months of daily use. If you have ever wanted to run a specific Android-only app on your Ubuntu desktop, Waydroid is the most practical path.
What Waydroid Is (and Is Not)
Waydroid runs a full Android system image inside a Linux container (LXC), sharing the host kernel. This means:
- It is not an emulator. There is no ARM-to-x86 translation (unless you add a translation layer). Android apps compiled for x86_64 run natively. ARM-only apps require additional setup.
- It requires Wayland. Waydroid renders through the Wayland compositor โ it does not work on Xorg sessions. If you are running GNOME on Ubuntu 24.04, the default session is Wayland, so you are fine.
- It uses your GPU directly. Android apps get hardware-accelerated rendering through Mesa’s Virgl or native GPU drivers.
The result is performance that feels close to a real Android device โ smooth scrolling, responsive UI, and decent gaming performance for 2D and lightweight 3D titles.
Prerequisites
Before installing:
- Wayland session: Verify with
echo $XDG_SESSION_TYPEโ must returnwayland - Linux kernel with binder support: Ubuntu 24.04’s default kernel includes the necessary binder and ashmem modules
- GPU drivers: Intel and AMD work out of the box. Nvidia support requires additional steps (see below)
Installation
Method 1: Official Waydroid Repository
sudo apt install curl ca-certificates
curl -s https://repo.waydro.id | sudo bash
sudo apt install waydroid
Method 2: Ubuntu Repository (Simpler)
Ubuntu 24.04 includes Waydroid in the universe repository:
sudo apt install waydroid
The repository version may be slightly behind the official Waydroid repo, but it receives security updates through Ubuntu’s package management.
Initialize Waydroid
sudo waydroid init
This downloads a LineageOS-based Android system image (~800 MB). For a GAPPS (Google Apps) image:
sudo waydroid init -s GAPPS
The GAPPS variant includes the Google Play Store, Play Services, and other Google apps. Without it, you are limited to F-Droid or sideloading APKs.
First Launch
waydroid show-full-ui
This opens Android in a window. The first boot takes 30โ60 seconds as the Android system initialises. Subsequent launches are much faster.
To run a specific app in its own window (multi-window mode):
waydroid app launch com.package.name
Accessing the App Drawer
On first boot, you will see the LineageOS home screen. Swipe up to access the app drawer, or use the navigation buttons at the bottom.
Installing the Google Play Store (If Not Using GAPPS Image)
If you initialised without GAPPS but want Google Play:
sudo waydroid init -f -s GAPPS
The -f flag forces a re-initialisation, replacing the existing image.
After rebooting Waydroid, open the Play Store. You will need to register your device’s Android ID with Google:
sudo waydroid shell
ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = 'android_id';"
Copy the ID and register it at Google’s device registration page from a browser on your Ubuntu desktop.
GPU Acceleration
Intel and AMD
Hardware acceleration works automatically through Mesa’s Virgl (virtual GPU) driver. Android apps render using OpenGL ES, which Virgl translates to the host GPU’s Vulkan or OpenGL capabilities.
Verify acceleration is working:
waydroid shell
dumpsys SurfaceFlinger | grep GLES
You should see your actual GPU mentioned, not “SwiftShader” (which indicates software rendering).
Nvidia
Nvidia GPU support in Waydroid is experimental. The proprietary driver does not support Virgl. You have two options:
- Use the nouveau driver (open source, limited performance): Switch to nouveau for the Waydroid session
- Use Nvidia’s open kernel module with the latest driver (550+): Some users report success, but it is not guaranteed
For most Nvidia users, the practical approach is to run Waydroid on a secondary Intel/AMD GPU if your machine has one (common on laptops with hybrid graphics).
Useful Configuration
Clipboard Sharing
Enable clipboard sharing between Android and Ubuntu:
waydroid prop set persist.waydroid.clipboard_sharing true
waydroid session stop
waydroid session start
Network Access
Waydroid creates its own network bridge. If Android apps cannot access the internet:
sudo waydroid shell
settings put global captive_portal_detection_enabled 0
Running ARM Apps (Translation Layer)
Many Android apps are compiled only for ARM. To run them on x86_64:
sudo waydroid shell
Install libhoudini (Intel’s ARM translation library) through the Waydroid extras script available in the Waydroid community tools repository. This enables most ARM apps to run, though with some performance penalty.
Real-World Performance
On a Ryzen 7 7840HS with Radeon 780M (integrated GPU), running Ubuntu 24.04 Wayland:
- Productivity apps (banking apps, WhatsApp, Kindle): Work perfectly, feel native
- 2D games (Wordle, crossword puzzles): Smooth, no issues
- 3D games (lightweight): Playable with occasional frame drops
- Heavy 3D games (Genshin Impact, etc.): Not practical โ these need a real Android device or dedicated emulator
Limitations to Know
- Camera passthrough: Not supported. Apps that require a camera will not work.
- Bluetooth: Android apps cannot access the host’s Bluetooth directly.
- Notifications: Work within the Waydroid window but do not integrate with GNOME’s notification system.
- DRM content: Some streaming apps (Netflix, Disney+) detect Waydroid as an “uncertified device” and refuse to play protected content.
Related Reading
- Wayland vs Xorg โ Waydroid requires Wayland
- Ubuntu 24.04 Post-Install Checklist โ general system setup
- Snap vs Flatpak vs Deb โ other ways to get apps on Ubuntu


