- Waydroid adalah proyek yang mem-boot seluruh sistem Android sebagai container di desktop GNU/Linux berbasis Wayland, sehingga aplikasi Android dapat berjalan berdampingan seperti aplikasi Linux
- Dengan memanfaatkan Linux namespace, LXC, dan antarmuka binder, container Android dapat mengakses langsung hardware yang diperlukan, serta mendukung platform GNU/Linux arm, arm64, x86, dan x86_64
- Aplikasi Android dapat diintegrasikan ke folder aplikasi Linux, dan menyediakan cara menjalankan sesuai lingkungan penggunaan seperti Multi-Window Mode, Full UI Mode, dan Fullscreen Mode
- Runtime terdiri dari image sistem Android dengan kustomisasi minimal berbasis LineageOS, dan image saat ini berbasis Android 13
- Setelah instalasi, layanan waydroid-container perlu dijalankan dan wizard pertama kali harus diselesaikan dari menu aplikasi; distribusi beta Waydroid-Linux berjalan di lingkungan yang terpasang, bukan live mode
Struktur Android-on-Linux Waydroid
- Waydroid menggunakan pendekatan mem-boot seluruh sistem Android sebagai container di lingkungan desktop berbasis Wayland pada sistem GNU/Linux umum
- Android di dalam container menggunakan Linux namespace
- user
- pid
- uts
- net
- mount
- ipc
- Sistem Android mengakses langsung hardware yang diperlukan melalui LXC dan antarmuka binder
- Platform yang didukung adalah arm, arm64, x86, dan x86_64 berbasis GNU/Linux
- Proyek ini gratis dan open source, dengan repositori di GitHub
Integrasi desktop dan mode eksekusi
- Aplikasi Android berjalan di desktop berdampingan dengan aplikasi Linux, dan Waydroid menambahkan aplikasi Android ke folder aplikasi Linux
- Mode eksekusi dibagi berdasarkan cara penggunaan
- Multi-window mode: memperluas definisi Android freeform window dengan menambahkan berbagai fungsi
- Full UI Mode: menampilkan seluruh UI Android untuk game dan hiburan layar penuh
- Fullscreen Mode untuk desktop dan kiosk dapat digunakan
- Dari sisi performa, Waydroid menargetkan perilaku sedekat mungkin dengan native melalui penggunaan Wayland dan AOSP mesa
- Lingkungan runtime Android disediakan bersama image sistem Android dengan kustomisasi minimal berbasis LineageOS, dan image saat ini berbasis Android 13
Dokumentasi, instalasi, dan beta Waydroid-Linux
- Dokumentasi dan pengelolaan issue dapat dilihat di tautan terpisah
- Dokumentasi: docs.waydro.id
- Laporan bug: GitHub Repo
- Repositori pengembangan: GitHub
- Dokumentasi instalasi desktop: installation docs
- Unduhan image manual: SourceForge
- Alur instalasi cepat untuk distribusi systemd mengikuti dokumentasi instalasi per distribusi, lalu jika tidak berjalan otomatis, mulai layanan waydroid-container dan jalankan Waydroid dari menu aplikasi untuk menyelesaikan wizard pertama kali
- Jika diminta saat eksekusi pertama, masukkan System OTA dan Vendor OTA melalui tautan OTA
- System OTA:
https://ota.waydro.id/system - Vendor OTA:
https://ota.waydro.id/vendor
- System OTA:
- Waydroid-Linux Beta adalah distribusi yang terintegrasi penuh, dibuat untuk menunjukkan kemungkinan integrasi yang dapat diwujudkan Waydroid
- Rilis alfa awal dimulai dari Ubuntu 20.04(focal)
- Saat ini juga mencakup Ubuntu 22.04(jammy) dan Debian 12(bookworm)
- Mencakup berbagai tool dan skrip untuk memperluas cakupan pekerjaan yang memungkinkan
- Karena Waydroid menggunakan modul kernel untuk LXC dan binder, Waydroid-Linux tidak berjalan dalam live mode; instalasi diperlukan agar berfungsi normal
- Item unduhan beta meminta pengguna memeriksa README.md, dan contoh rilis yang tersedia mencakup Ubuntu 22.04 KDE-Plasma, Ubuntu 22.04 Gnome, Debian 12 Beta, Ubuntu 21.10 Beta, serta rilis alfa sebelumnya
1 komentar
Pendapat di Hacker News
Saya cukup terkejut ini masuk front page. Soalnya ini perangkat lunak yang cukup terkenal
Yang disayangkan adalah tidak adanya image yang disediakan Google yang berjalan di Waydroid. Misalnya image sistem umum. Rasanya kurang nyaman memasukkan kata sandi ke ROM sembarang yang diunduh dari internet
https://source.android.com/docs/core/tests/vts/gsi
Untuk proyek seperti Waydroid yang membutuhkan dukungan komunitas dan penyediaan berkelanjutan, itu pilihan yang wajar. Selama bertahun-tahun Google terus menghapus banyak bagian bebas dan open source yang awalnya ada di AOSP, basis Android, sehingga proyek seperti LineageOS harus mengembangkan komponen pengganti. Meski begitu, menurut saya perubahan yang dilakukan LineageOS terhadap AOSP lebih sedikit daripada kebanyakan produsen ponsel, termasuk Google
Akan bagus kalau ada Android terkontainerisasi yang bisa dijalankan di Mac dengan Docker Desktop atau OrbStack
Saya ingin memodifikasi image Docker untuk menyiapkan proxy man-in-the-middle yang sudah di-root terlebih dahulu, lalu menjalankan aplikasi Android agar bisa mengamati trafik jaringan dan panggilan API jauh lebih mudah
sudo ip netns exec wiresharkIni adalah basis yang dipakai FuriLabs untuk membuat integrasi aplikasi Android dengan baik. Tentu mereka melakukan fork dan memodifikasinya besar-besaran [0], tetapi pengalaman pengguna untuk bisa memakai aplikasi Android di ponsel Linux sangat bagus
[0] https://github.com/FuriLabs/waydroid
Furiphone FLX1 memanfaatkan ini secara aktif, dan hasilnya sangat bagus. Saya bisa melakukan sebagian besar hal yang benar-benar ingin saya lakukan dengan ponsel Android
Memang kebutuhan saya tidak banyak, tetapi saya juga tahu orang yang memakainya untuk Signal dan Spotify. Proyek yang hebat dan sangat cocok untuk ponsel Linux
Pada akhirnya sepertinya saya tetap harus membawa dua ponsel. Aplikasi bank dan kartu kredit adalah aplikasi penting yang saya butuhkan setiap hari, dan untuk sebagian akun saya bahkan tidak bisa login dari browser desktop tanpa autentikasi aplikasi ponsel. Pembayaran individual juga sering memerlukan konfirmasi dari aplikasi ponsel. Saya juga tidak dalam posisi untuk mengganti rekening demi pengalaman pengguna yang lebih bebas
Di luar urusan finansial, untuk pekerjaan utama saya harus memakai rangkaian produk Google, dan untuk pekerjaan lain saya juga harus memakai Discord. Sepertinya ini bisa lewat browser meski fiturnya berkurang, tetapi tidak demikian untuk aplikasi bank dan kartu kredit
Ini bukan keluhan terhadap Waydroid atau FLX1; saya menghargai kerja dan kreativitasnya. Saya sudah lama bermimpi memiliki dan membuat sendiri ponsel yang sepenuhnya bebas dan open source, dan saya tahu besarnya pekerjaan itu. Dulu saya juga memakai dua Nokia N900
Namun zaman sudah berubah, dan saya berharap ditemukan cara untuk menjalankan aplikasi atau protokol yang dibutuhkan kehidupan sehari-hari sekarang di atas atau berdampingan dengan sistem berbasis bebas dan open source
Namun ketiadaan panel OLED mungkin bisa menjadi kekurangan fatal
Saya punya tiga aplikasi yang saya beli lama sekali: kamus bahasa Swedia, kamus Jerman-Swedia, dan kamus Inggris-Swedia
Masih bisa dipasang, tetapi tidak lagi tersedia di app store. Perusahaannya, Norstedts, tentu saja sudah beralih ke model langganan. Saya memakai Waydroid untuk menggunakan aplikasi-aplikasi ini di desktop, dan sangat puas
Banyak aplikasi bergantung pada dijalankan di distribusi Android “resmi” seperti Google atau Samsung, dan tidak berjalan di distribusi berbasis Lineage milik Waydroid
Pendekatan ala Wine seperti https://gitlab.com/android_translation_layer/android_transla... tampaknya bisa membantu menipu aplikasi agar mengira sedang berjalan di distribusi Android “resmi”
Pendekatan ATL ala Wine jelas lebih intuitif untuk meniru API, tetapi tetap membutuhkan implementasi ulang terpisah untuk ATL. Sebaliknya Waydroid menjalankan seluruh lingkungan Android, sehingga ada kemungkinan bisa memakai ulang Magisk atau microG
Setiap kali melihat ini, saya berpikir, “Keren! Saya bisa menjalankan aplikasi Android keren yang tidak punya padanan di Linux,” tetapi setiap kali tidak ada yang terlintas. Apakah ada aplikasi Android yang benar-benar wajib ada?
Organic Maps punya versi desktop Linux, tetapi kesetaraan fiturnya masih jauh. Namun, ini mungkin berubah berkat hibah ini [1] untuk membuat UI desktop yang bagus bagi Organic Maps
[1] https://nlnet.nl/project/OrganicMaps-ConvergentUI/
Apakah container ini bisa mengakses perangkat USB hardware? Saya punya kabel USB-C Moondrop FreeDSP dengan PEQ, tetapi hanya berfungsi lewat aplikasi Android yang buruk
Tablet Android yang saya punya juga touchscreen-nya jelek, jadi mengubah pengaturan EQ terlalu lama. Saya ingin melakukannya langsung dari laptop Linux
Kalaupun tidak, pada akhirnya ini adalah container Linux, jadi dengan sedikit aturan udev mestinya bisa dibuat berfungsi juga
Ada beberapa hal yang tampaknya terus absen dari proyek semacam ini. Bagian untuk memakai akselerasi 3D hardware host sebagai versi OpenGL ES dan Vulkan yang secara default didukung kebanyakan ponsel masih kurang
Selain itu, banyak aplikasi punya cara bawaan untuk mendeteksi bahwa mereka tidak berjalan di ponsel, lalu melihat cpuinfo, membandingkannya dengan perangkat yang diklaim, dan keluar
Dukungan ARM yang diharapkan dari perangkat juga terus bertambah, begitu pula throughput yang diharapkan. Jadi untuk mengemulasikan bahkan SoC ARM mobile modern biasa pun, performa host x86 yang dibutuhkan makin tinggi
Terakhir, versi Android yang didukung hampir selalu tertinggal 3–4 generasi dari yang terbaru. Aplikasi cepat menghentikan dukungan Android lama, atau berjalan dengan fitur dan optimasi yang lebih sedikit di OS versi lama. Versi Android yang menjadi basis proyek ini berasal dari 2020
Sebagai anekdot, bahkan BlueStacks, yang punya stack emulasi dengan kompatibilitas dan optimasi terbaik di bidang ini, saat dijalankan di 7800X3D / RTX 3090, sebagian besar game lebih lambat daripada berjalan native di ponsel Snapdragon 8 tahun lalu
virtio-gpu-rutabaga: https://www.qemu.org/docs/master/system/devices/virtio-gpu.h...
Rutabaga Virtual Graphics Interface: https://crosvm.dev/book/appendix/rutabaga_gfx.html
gfxstream: https://android.googlesource.com/platform/hardware/google/gf...
“Gfxstream Merged Into Mesa For Vulkan Virtualization” (2024-09)
https://www.phoronix.com/news/Mesa-Gfxstream-Merged
Saya tidak tahu mengapa tidak ada container atau ROM x86 resmi untuk pengembangan Android. Apakah build CI aplikasi Android tidak menjalankan pengujian pada versi Android terbaru? Saya penasaran bagaimana build CI APK menjalankan pengujian GUI tanpa container Android
Yang mengejutkan adalah belum ada orang yang mengabstraksikan ini agar beberapa container Android bisa dijalankan di bawah LXC
Di Waydroid hanya ada satu image. Menurut saya sepertinya ia memakai kernel Linux kustom dengan banyak patch, dan saya tidak benar-benar memahaminya, tetapi sisi antarmuka LXC tampak cukup sederhana