Waydroid — X11

Waydroid adalah solusi container-based untuk menjalankan Android (LineageOS) secara native di Linux dengan performa tinggi, tanpa emulasi hardware. Waydroid menggunakan container LXC yang memberikan akses langsung ke hardware host.

Weston adalah referensi Wayland compositor yang dapat berjalan sebagai aplikasi di dalam sesi X11 — bertindak sebagai jembatan agar Waydroid (yang membutuhkan Wayland) dapat berjalan di lingkungan X11.

Arsitektur

X11 Session (Desktop Host)
    └── Weston (Wayland Compositor sebagai jendela)
        └── Waydroid Container (LineageOS Android)
            └── Aplikasi Android

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 X11:

echo $XDG_SESSION_TYPE
# Output harus: x11

Instalasi

sudo xbps-install -S weston waydroid

Jika paket waydroid tidak tersedia di repositori default, aktifkan repositori nonfree terlebih dahulu.

Verifikasi instalasi:

waydroid --version
lsmod | grep binder

Jika modul binder tidak muncul, muat secara manual:

sudo modprobe ashmem_linux
sudo modprobe binder_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/.

Konfigurasi Service (runit)

Buat file /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/
sudo waydroid container start

Menjalankan Waydroid di X11

Manual

# Jalankan Weston di background
weston &

# Tunggu Weston siap, lalu jalankan Waydroid dari terminal Weston
waydroid show-full-ui

Script Otomatis

Buat ~/waydroid-x11.sh:

#!/bin/bash

echo "Starting Weston..."
weston &
sleep 3

if pgrep -x "weston" > /dev/null; then
    echo "Weston started."
    waydroid session start &
    sleep 2
    echo "Starting Waydroid UI..."
    waydroid show-full-ui
else
    echo "Failed to start Weston."
    exit 1
fi
chmod +x ~/waydroid-x11.sh
~/waydroid-x11.sh

Alternatif: Cage (Lebih Ringan)

sudo xbps-install -S cage
cage -- waydroid show-full-ui

Cage tidak memiliki dekorasi jendela tambahan dan lebih ringan dari Weston.

Integrasi Desktop

Desktop Entry

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

[Desktop Entry]
Name=Waydroid (X11)
Comment=Run Android apps on Linux
Exec=/home/username/waydroid-x11.sh
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

Troubleshooting

WAYLAND_DISPLAY is not set

Weston belum berjalan. Pastikan Weston dijalankan sebelum waydroid show-full-ui.

Waydroid Container STOPPED

sudo waydroid container start
sudo sv status waydroid-container

Modul binder Tidak Ditemukan

zgrep BINDER /proc/config.gz

Jika tidak ada, perlu kernel dengan CONFIG_ANDROID_BINDER_IPC=y.

Waydroid Tidak Tampil di Weston

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

Tidak Ada Internet di Waydroid

sudo iptables -A FORWARD -i waydroid0 -j ACCEPT
sudo iptables -A FORWARD -o waydroid0 -j ACCEPT

Menghentikan Waydroid

sudo pkill waydroid-container
pkill weston

Optimalisasi

  • Gunakan Cage sebagai compositor — lebih ringan dari Weston.
  • Nonaktifkan animasi Android: Settings → Developer Options → set semua animation scale ke 0.
  • Edit /etc/waydroid/waydroid.cfg untuk mengatur alokasi resource:
[resources]
memory_mb = 4096
cpu_shares = 1024
  • GPU NVIDIA proprietary tidak kompatibel dengan baik di Wayland — gunakan driver nouveau atau akselerasi software.

Uninstall

sudo xbps-remove waydroid weston
sudo rm -rf /var/lib/waydroid
sudo rm /var/service/waydroid-container
sudo rm -rf /etc/sv/waydroid-container

Referensi


@T4n-Labs · @Gh0sT4n