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.cfguntuk 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
| Aspek | Wayland (Native) | X11 (dengan Weston) |
|---|---|---|
| Performa | Native, tanpa overhead | Ada overhead compositor tambahan |
| Instalasi | Sederhana | Perlu Weston + konfigurasi |
| Integrasi desktop | Penuh (menu, notifikasi) | Terisolasi di jendela Weston |
| GPU Acceleration | Langsung | Melalui 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
EOF