「Waydroid」是一個讓您在Linux系統跑Android APP的軟體。
Waydroid可以登入Google Play商店下載APP,安裝許多常用APP。而且Waydroid支援GPU硬體加速,所以可以玩許多款Android手機遊戲。
Waydroid的系統基於LineageOS建置,背後技術源自Canonical的容器技術「Anbox」,由新的開發團隊將其功能變得更加完善。因為Waydroid使用LXC容器技術,再加上能使用GPU加速,所以執行效能比Android-x86 QEMU/KVM虛擬機更加高效。
就Waydroid的設計來看,這個專案很像Windows 11的Android子系統(WSA),讓使用者可以一邊操作Linux,一邊使用Android APP。在眾多的Linux系統Android模擬器解決方案中,Waydroid算是能跟桌面系統整合比較好的。
本文讓Ivon說明如何在Ubuntu安裝Waydroid。
1. 前置條件#
請確認符合以下條件之後再安裝Waydroid。
CPU架構#
電腦架構部份,Waydroid支援x86與ARM架構的Ubuntu電腦,安裝套件時程式會自己判斷。
不過要注意的是,許多手遊只提供ARM架構的APK,沒辦法在x86電腦使用。x86架構的電腦在安裝Waydroid之後,還要手動安裝ARM轉譯器,用於將ARM指令翻譯為x86,但這可能會增加APP執行時出錯的機率。因此,理想上ARM架構的Ubuntu電腦更好,這樣就不需要裝ARM轉譯器了。
GPU型號#
確保您不是用Nvidia顯示卡,目前Waydroid只支援Intel和AMD的顯示卡(內顯也可以)。根據開發者說法,由於Nvidia閉源驅動不照圖形驅動程式標準走的緣故,Nvidia顯示卡會黑畫面。現在最新Nvidia閉源驅動版本575,此問題尚未解決,進度可到Github查詢。
因此Nvidia顯示卡的用戶有三種解決方法:一、使用內顯跑Waydroid 二、使用軟體渲染(不推薦) 三、使用其他Android模擬器方案。
部份Intel與AMD的CPU是有內顯的,但或許你沒有在用。使用vulkaninfo --summary
指令印出目前電腦的主顯示卡型號。
如何確認電腦是否有內顯?使用sudo lshw -C display
指令印出電腦所有的顯示卡,看看有無Nvidia以外的GPU型號,例如我Intel i5-7400 CPU的就是UHD 630,這個內顯跑一些輕度手遊是夠的。到電腦主機板設定,切換為內顯開機就可以使用Waydroid了。
註解:有人做了一個waydroid-choose-gpu.sh指令稿能夠選取Waydroid使用的GPU,似乎能解決Nvidia + Intel配置的顯示卡問題,在Nvidia作為主顯示卡的情況下強制使用Intel顯示卡渲染,但因為Waydroid需要桌面合成器協助,執行時使用的GPU必須跟桌面合成器是同一個,因此這個指令稿似乎只在Intel + AMD的配置有效。
Linux核心版本#
Waydroid執行依賴Linux核心的binder
模組。Ubuntu 24.04以上安裝的Linux 6.0核心應該都有啟用,無需做其他設定。
如果不放心,使用以下指令確認binder模組是否有載入:
sudo lsmod | grep binder
Wayland顯示協定#
Waydroid需要使用Wayland顯示協定的桌面才可以啟動。
Ubuntu預設桌面環境是GNOME,請確保現在的桌面環境使用Wayland工作階段,開啟終端機,輸入以下指令查看:
echo $XDG_SESSION_TYPE
若顯示的不是wayland
代表您還在用X11,請登出Ubuntu,在輸入密碼的時候點選右下角齒輪,選擇Ubuntu
或者不帶Xorg
的選項登入。
註解:如果不方便或者不想使用Wayland工作階段,你也可以安裝Weston合成器套件,並打weston
指令,在X11環境啟動巢狀Wayland工作階段,再開啟Weston的終端機,達成在X11工作階段跑Waydroid的作法。
2. 安裝Waydroid#
此處的指令只適用Ubuntu與Debian,其他Linux發行版請參考官方文件。
- 安裝以下套件,包含Waydroid以及後續指令稿會用到的套件
sudo apt install curl ca-certificates lzip python3 python3-pip
- 安裝以下套件,讓Linux與Waydroid共享剪貼簿,其中一個Python套件因為Ubuntu套件庫沒有收,所以要用pip強制安裝
sudo apt install wl-clipboard xclip
sudo pip install pyclip --break-system-packages
- 執行Waydroid官方套件庫的指令稿,安裝Waydroid。安裝指令稿應會自動偵測系統版本
curl https://repo.waydro.id | sudo bash
sudo apt install waydroid
- 初始化Waydroid,下載內建GAPPS的映像檔。如果不加入
-s GAPPS
參數的話,Waydroid就會下載不含GMS服務的vanilla映像檔。
sudo waydroid init -s GAPPS -f
- 啟動Waydroid容器服務
sudo systemctl start waydroid-container
# 開機自動啟動
sudo systemctl enable waydroid-container
在應用程式列表點選「Waydroid」的圖示,啟動Waydroid。這個圖示的功用等同執行
waydroid show-full-ui
指令。Waydroid預設界面是英文的,請到Android系統設定修改語言,拉動滑桿將繁體中文放到頂端,並調整時區。
如果Waydroid無法連上網路,請嘗試開放UFW防火牆通訊埠,再重新啟動Waydroid:
sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
sudo ufw reload
sudo systemctl restart waydroid-container
3. 安裝後建議做的事情#
Ivon在此強烈建議您安裝Google Play商店並通過裝置認證,還有安裝ARM轉譯器。
參考資料#
回報bug請到Waydroid的Github儲存庫