Linux電腦跑Android APP ~ Ubuntu如何安裝Waydroid

目錄
「Waydroid」是一個讓您在Linux系統跑Android APP的軟體,可達到類似Windows的「Android模擬器」的功能。
Waydroid支援GPU硬體加速,所以可以玩Android遊戲,還能登入Google Play商店、刷入Magisk、裝ARM→x86轉譯的libhoudini等等。
Waydroid內建的系統基於LineageOS建置,背後技術源自Canonical的「Anbox」LXC容器技術,由Waydroid開發團隊將其功能變得更加完善。就技術層面而言,Waydroid容器比較像Windows的Android子系統(WSA),而非單純的虛擬機。
在眾多的 Linux系統Android模擬器解決方案中,Waydroid算是能跟桌面系統整合比較好的。
本文讓Ivon說明如何在Ubuntu安裝Waydroid。
1. 前置條件 #
測試系統Ubuntu 22.04,核心版本5.19.0
Waydroid支援Ubuntu 20.04以上系統,安裝指令稿應會自動偵測系統版本。
確保您不是用Nvidia顯示卡。根據 開發者說法,由於Nvidia不照圖形驅動程式標準走的緣故,目前Waydroid只支援Intel和AMD的顯示卡,Nvidia顯示卡會黑畫面。若您為Nvidia顯示卡建議改用 其他Android模擬器方案。
接著,確保現在是使用Wayland工作階段,輸入以下指令查看:
echo $XDG_SESSION_TYPE
若顯示的不是
wayland
代表您還在用X11,請登出Ubuntu,在輸入密碼的時候點選右下角齒輪,選擇Ubuntu
或者不帶Xorg
的選項登入。最後是電腦架構部份,Waydroid支援x86與ARM架構的電腦,安裝套件時程式會自己判斷。理想上 ARM架構的Ubuntu電腦更好,這樣就不需要裝libhoudini轉譯器了。
2. 安裝Waydroid #
此處的指令只適用Ubuntu與Debian,其他Linux發行版請參考 官方文件。
- 安裝以下套件,包含Waydroid以及後續指令稿會用到的套件。
sudo apt install curl ca-certificates lzip python3 python3-pip
- 加入Waydroid官方儲存庫,安裝Waydroid
curl https://repo.waydro.id | sudo bash
sudo apt install waydroid
- 初始化Waydroid,下載內建GAPPS的映像檔
sudo waydroid init -s GAPPS -f
- 啟動Waydroid容器服務
sudo systemctl start waydroid-container
# 開機自動啟動
sudo systemctl enable waydroid-container
在應用程式列表點選「Waydroid」的圖示,啟動Waydroid。
Waydroid預設界面是英文的,請到Android系統設定修改語言,調整時區。
如果Waydroid無法連上網路,請嘗試開放UFW防火牆,再重新啟動Waydroid:
sudo ufw systemctl enable --now ufw
sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
sudo ufw reload
sudo systemctl restart waydroid-container
3. 向Google註冊Waydroid裝置 #
第三方ROM不向Google註冊裝置的話,是無法存取Google Play商店的。
sudo apt install lzip
cd ~
git clone https://github.com/casualsnek/waydroid_script
cd waydroid_script
python3 -m venv venv
venv/bin/pip install -r requirements.txt
- 執行指令稿,會迸出一長串代碼
sudo venv/bin/python3 main.py -i
- 到 Google裝置註冊,填入該代碼,等30分鐘後就可以使用Play商店了。
4. 安裝libhoudini轉譯器 #
libhoudini是Intel研發的專有軟體,用於將ARM指令翻譯成x86的指令,性能會有些微損失。
鑑於大多數電腦都是x86架構,所以得裝libhoudini。不裝這個的話,將有一半以上的遊戲無法執行。
- 再次執行casualsnek的指令稿,安裝libhoudini
cd ~/waydroid_script
sudo venv/bin/python3 main.py install libhoudini
- 重啟Waydroid
sudo systemctl restart waydroid-container
- Google Play可能還是不會顯示x86架構以外的應用程式,為此您需要到ApkMirror找ARM架構的APK來裝,看能否正常開啟,例如 Subway Surfers
5. 一些小優化:強制旋轉、模擬觸控、模擬Wifi、儲存空間 #
螢幕旋轉 #
安裝 Rotation Control這類APP,即可強制調整Waydroid螢幕方向。
開啟模擬Wifi #
安裝 Package Manager,用於查看APP的套件名稱。
部份APP會要求開啟Wifi才能上網,那麼就如它所願,開啟fake wifi:
sudo waydroid prop set persist.waydroid.fake_wifi "套件名稱"
# 例如
sudo waydroid prop set persist.waydroid.fake_wifi "com.aniplex.fategrandorder"
# 接著執行sudo systemctl restart waydroid-container
模擬觸控功能 #
安裝 Package Manager,用於查看APP的套件名稱。
有些APP認不到滑鼠點擊,需要啟用模擬觸控(fake touch):
sudo waydroid prop set persist.waydroid.fake_touch "套件名稱"
# 例如
sudo waydroid prop set persist.waydroid.fake_touch "com.aniplex.fategrandorder"
# 接著執行sudo systemctl restart waydroid-container
6. Waydroid進階使用技巧 #
Waydroid的Android系統資料放在~/.local/share/waydroid/data/
,系統映像檔位於/var/lib/waydroid
,APP圖示位於~/.local/share/applications/
系統操作指令 #
啟動/停止Waydroid容器服務
sudo systemctl start waydroid-container
sudo systemctl stop waydroid-container
用指令開啟Waydroid主畫面
waydroid show-full-ui
查看系統錯誤訊息
waydroid log
sudo waydroid logcat
用指令安裝APK #
Waydroid用此指令安裝APK:
waydroid app install <APK檔案路徑>.apk
進入ADB Shell #
進入Android shell,內建Root權限
sudo waydroid shell
開啟懸浮模式 #
以下指令讓Waydroid開啟多視窗模式,變成好像Linux的原生應用程式一般。啟動後按F11改回來。
waydroid prop set persist.waydroid.multi_windows true
sudo systemctl restart waydroid-container
APP無法儲存檔案 #
用以下指令修正Android 11版Waydroid的APP無法寫入儲存空間的問題:
cd ~/waydroid_script
sudo python3 main.py hack nodataperm
sudo systemctl restart waydroid-container
Linux與Waydroid檔案傳輸 #
使用mount指令新增連結:
sudo mount --bind ~/Downloads ~/.local/share/waydroid/data/media/0/Download
您也可以用ADB無線指令傳輸檔案。
延伸閱讀 #
回報bug請到 Waydroid的Github儲存庫