想要把樹莓派變成Android遊戲機嗎?在你洗掉系統,準備安裝完整的Android系統之前,可以先試試Waydroid的解決方案。
Waydroid的作法是跑一個LXC容器,跟Linux主機共享核心,跑一個LineageOS系統,藉以執行Android APP。
Waydroid內建Google Play商店,支援3D硬體加速。實測在樹莓派5玩時下熱門的手遊《蔚藍檔案》,開中等畫質完全沒問題。
實測影片:
這樣你就可以同時跑Linux環境,又有Android APP輔助啦。不需要將系統完全替換成Android,亦可享受Android APP的便利。
且由於樹莓派本就是ARM架構,不用像x86 Linux PC需要libhoudini轉譯器才能玩遊戲,亦不會有x86轉譯ARM出現的不相容情況。
不過,Waydroid的取向比較像「遊戲模擬器」,適合執行文書程式和遊戲,雖然可以用滑鼠、鍵盤、手把操控,但無法存取樹莓派的相機和麥克風這類硬體裝置。如果你想要全功能的Android系統,請還是將樹莓派系統刷成LineageOS吧。(參見: 樹莓派安裝LineageOS)
1. 環境#
建議使用樹莓派4以後的板子跑,太老的板子可能會很卡。
硬體:樹莓派5,8GB版本,Raspberry Pi OS Bookworm
Waydroid版本:LineageOS 18 Android 11
你需要準備鍵盤和滑鼠,並將樹莓派連接到實體螢幕。Waydroid支援觸控,所以觸控螢幕也行。
或者你可以用 Sunshine遠端桌面的方式遊玩。
2. 桌面環境與系統方面的調整#
- Waydroid需要Wayland協定才可以跑。但Raspberry Pi OS的預設桌面環境LXDE-pi-wayfire不穩定,Waydroid畫面出不來,所以我改為安裝標準的GNOME桌面。
sudo apt install task-gnome-desktop
sudo systemctl enable gdm
重開機,登入時點右下角齒輪切換為GNOME工作階段
確認目前是Wayland工作階段
echo $XDG_SESSION_TYPE
- 這版的Raspberry Pi OS設計比較特殊,故需要啟用啟用4K PageSize才可以讓Waydroid跑起來。以下指令是將
kernel=kernel8.img
加入到/boot/firmware/config.txt
echo '# 4k pages
kernel=kernel8.img
'| sudo tee -a /boot/firmware/config.txt
- 再啟用PSI
sudo sed --follow-symlinks -i 's/quiet/psi=1 quiet/g' /boot/firmware/cmdline.txt
- 重開機,確認4K PageSize和PSI已經啟用
getconf PAGESIZE
ls /proc/pressure
3. 安裝Waydroid#
- 執行官方指令稿安裝
sudo apt install curl ca-certificates -y
curl https://repo.waydro.id | sudo bash
sudo apt install waydroid
安裝後的Waydroid會更新Linux核心模組,請重開機。
接著初始化系統,下載GAPPS版本的映像檔
sudo waydroid init -s GAPPS -f
- 如果你有啟用UFW防火牆,記得允許通過
sudo ufw allow 53
sudo ufw allow 67
sudo ufw default allow FORWARD
sudo ufw reload
- 啟動Waydroid
sudo systemctl enable --now waydroid-container
waydroid show-full-ui
初次啟動後請到系統設定把語言調成中文,並設定時區。
回到Linux宿主機,執行以下指令,取得Waydroid的裝置ID
sudo waydroid shell
ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"
到 Google官網註冊尚未驗證的裝置,等30分鐘後才可以使用Play商店。
有些遊戲可能會遇到無法讀取儲存空間的問題,請執行以下指令修正
sudo waydroid shell
chmod 777 -R /sdcard/Android
chmod 777 -R /data/media/0/Android
chmod 777 -R /sdcard/Android/data
chmod 777 -R /data/media/0/Android/obb
chmod 777 -R /mnt/*/*/*/*/Android/data
chmod 777 -R /mnt/*/*/*/*/Android/obb
- 其餘Waydroid的技巧請參閱 電腦版Waydroid使用教學。