Waydroid — Wayland

Waydroid adalah solusi container berbasis LXC untuk menjalankan Android (LineageOS) secara native di Linux dengan integrasi penuh ke desktop. Waydroid hanya dapat berjalan di atas sesi Wayland.

Arsitektur

Wayland Compositor (GNOME/KDE/Sway/Wayfire)
    └── Waydroid Container (LineageOS Android)
        └── Aplikasi Android (terintegrasi sebagai aplikasi native)

Prasyarat

  • CPU dengan dukungan virtualisasi (Intel VT-x / AMD-V).
  • RAM minimal 4 GB (8 GB disarankan).
  • Ruang disk minimal 4 GB untuk image Android.
  • Kernel Linux dengan modul binder (kernel Void modern sudah mendukung).

Pastikan sesi berjalan di Wayland:

echo $XDG_SESSION_TYPE
# Output harus: wayland

Jika output x11, logout dan pilih sesi Wayland dari display manager.

Driver Grafis

# AMD
sudo xbps-install -S mesa-dri mesa-vaapi mesa-vdpau mesa-vulkan-radeon

# Intel
sudo xbps-install -S mesa-dri intel-video-accel

# NVIDIA (proprietary)
sudo xbps-install -S nvidia nvidia-libs-32bit

NVIDIA dengan driver proprietary paling kompatibel di GNOME atau KDE Plasma Wayland.


Instalasi

sudo xbps-install -S waydroid

Verifikasi:

waydroid --version
lsmod | grep binder

Jika modul binder tidak muncul, muat secara manual:

sudo modprobe ashmem_linux
sudo modprobe binder_linux

Agar modul termuat otomatis saat boot, buat /etc/modules-load.d/binder.conf:

binder_linux
ashmem_linux

Konfigurasi Awal

Inisialisasi Image Android

Tanpa Google Apps:

sudo waydroid init

Dengan Google Play Services:

sudo waydroid init -s GAPPS

Proses ini mengunduh image Android (~2 GB) ke /var/lib/waydroid/images/.

Parameter Kernel PSI

Untuk performa optimal, tambahkan psi=1 ke GRUB_CMDLINE_LINUX_DEFAULT di /etc/default/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash psi=1"

Perbarui GRUB:

sudo update-grub

Konfigurasi Container (runit)

Jalankan container service:

sudo waydroid container start

Untuk autostart saat boot, buat /etc/sv/waydroid-container/run:

#!/bin/sh
exec waydroid-container-start 2>&1

Aktifkan service:

sudo mkdir -p /etc/sv/waydroid-container
sudo ln -s /etc/sv/waydroid-container /var/service/

Menjalankan Waydroid

waydroid session start &
waydroid show-full-ui

Mode grid semua aplikasi:

waydroid app-grid

Jika WAYLAND_DISPLAY tidak ter-set:

export WAYLAND_DISPLAY=wayland-0
export XDG_RUNTIME_DIR=/run/user/$(id -u)

Integrasi Desktop Environment

GNOME & KDE Plasma

Terintegrasi secara native — aplikasi Android muncul di menu aplikasi, notifikasi terintegrasi, copy-paste berfungsi via clipboard portal.

Sway / Wayfire

sudo xbps-install -S xdg-desktop-portal xdg-desktop-portal-wlr wl-clipboard

Autostart di Sway (~/.config/sway/config):

exec waydroid session start
exec waydroid show-full-ui

Desktop Entry

Buat ~/.local/share/applications/waydroid.desktop:

[Desktop Entry]
Name=Waydroid
Comment=Run Android apps on Linux
Exec=waydroid show-full-ui
Icon=waydroid
Terminal=false
Type=Application
Categories=System;Emulator;

Manajemen Aplikasi Android

waydroid app install /path/to/app.apk    # Install APK
waydroid app list                         # Daftar aplikasi
waydroid app launch com.example.app      # Jalankan aplikasi
waydroid app remove com.example.app      # Hapus aplikasi
waydroid app clear com.example.app       # Hapus data aplikasi

Shell Android

sudo waydroid shell
sudo waydroid shell "getprop ro.build.version.release"

Troubleshooting

WAYLAND_DISPLAY is not set

Pastikan login ke sesi Wayland, bukan X11.

Container STOPPED

sudo waydroid container start
sudo sv status waydroid-container

Layar Hitam / Tidak Ada Output

Cek compositor berjalan:

pgrep -l sway    # Sway
pgrep -l mutter  # GNOME
pgrep -l kwin    # KDE

Restart session:

waydroid session stop
waydroid session start &
waydroid show-full-ui

Aplikasi Force Close

sudo waydroid log

Tidak Ada Internet

sudo iptables -A FORWARD -i waydroid0 -j ACCEPT
sudo iptables -A FORWARD -o waydroid0 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4

Menghentikan Waydroid

waydroid session stop
sudo pkill waydroid-container

NVIDIA GPU

Compositor yang mendukung NVIDIA proprietary (EGLStreams): GNOME Wayland, KDE Plasma Wayland, Weston. Compositor berbasis GBM (Sway, Wayfire) tidak kompatibel — gunakan driver nouveau sebagai alternatif.


Optimalisasi

  • Edit /etc/waydroid/waydroid.cfg untuk mengatur alokasi resource:
[resources]
memory_mb = 4096
cpu_shares = 1024
  • Nonaktifkan animasi Android: Settings → Developer Options → set semua animation scale ke 0.
  • Gunakan SSD untuk penyimpanan image agar performa lebih baik.

Perbandingan Wayland vs X11

AspekWayland (Native)X11 (dengan Weston)
PerformaNative, tanpa overheadAda overhead compositor tambahan
InstalasiSederhanaPerlu Weston + konfigurasi
Integrasi desktopPenuh (menu, notifikasi)Terisolasi di jendela Weston
GPU AccelerationLangsungMelalui Weston
Multi-window
Copy-paste✅ (via portal)Terbatas

Uninstall

sudo xbps-remove waydroid
sudo rm -rf /var/lib/waydroid /etc/waydroid
sudo rm /var/service/waydroid-container
sudo rm -rf /etc/sv/waydroid-container
sudo rm /etc/modules-load.d/binder.conf

Referensi


@T4n-Labs · @Gh0sT4n

EOF