Waydroid是Anbox配合Halium技術開發的LXC Android容器,可在GNU/Linux系統執行Android APP。
- 作業系統:Arch Linux
- Linux核心版本:6.3.2
- Waydroid映像檔版本:LineageOS 18 (Android 11)
- CPU: Intel I5-7400
- GPU: Intel UHD 630
0. Waydroid特色
以下是Waydroid的特色功能:
- Linux平台自由開源的Android容器解決方案
- 支援x86與ARM架構的裝置
- 與宿主機共用剪貼簿
- 直接使用電腦顯示卡硬體加速,跑3D遊戲、看影片沒什麼問題。
- 內建GAPPS,可以使用Google Play
- 支援給x86裝置安裝ARM轉譯器
- 支援安裝Widevine DRM模組
- 支援Magisk
1. 設定顯示卡與Linux核心
根據開發者說法,由於Nvidia閉源驅動不照圖形驅動程式標準走的緣故,目前Waydroid只支援Intel和AMD的顯示卡,Nvidia顯示卡會沒畫面,若您為Nvidia顯示卡建議改用其他Android模擬器方案
1.1. 切換至Wayland
Waydroid必須使用Wayland顯示協定,用此指令檢查目前的工作階段是否為Wayland:
|
|
若顯示X11代表不是Wayland。GNOME和KDE可在登入畫面切換至Wayland工作階段。
如果想在X11工作階段使用Waydroid,請安裝Weston,再參考文末作法。
1.2. 安裝binder核心模組
Waydroid要求Linux核心支援binder核心模組,但Arch Linux預設的linux
核心並無開啟此選項,因此需要從AUR安裝binder_linux-dkms
補齊。
|
|
安裝後載入binder核心模組
|
|
設定開機自動載入核心模組
|
|
2. 安裝Waydroid
- 從AUR安裝Waydroid:
|
|
- 初始化Waydroid,下載含有GAPPS的Android系統映像檔。
|
|
- 啟動Waydroid容器服務
|
|
點選應用程式列表的「Waydroid」圖示開啟主畫面,或者使用指令:
waydroid show-full-ui
若Waydroid沒有網路,允許其通過防火牆:
|
|
3. 將Waydroid註冊為Google裝置
- Waydroid第一次開機可能會收到
Device is not Play Protect certified
的通知,無法登入Google帳號。
- 此時要取得casualsnek製作的指令稿,用於取得Waydroid的裝置ID。該指令會印出一長串數字。
|
|
- 開啟裝置註冊頁面,登入Google帳號,輸入裝置ID註冊,等個半小時應該就能登入Google帳號了。如果還是不行就重新啟動Waydroid容器服務:
|
|
- 現在可以安裝APP了,Google Play和F-Droid會自動篩出適合x86架構的APP。
4. 安裝ARM轉譯器libhoudini
很多APP只為手機的ARM架構打造,但大多數電腦都是x86架構,為此你需要安裝ARM轉譯器才能執行ARM架構的APP。
目前ARM→x86的轉譯器有libhoudini和libndk,前者比後者穩定些。casualsnek指令稿的libhoudini是從Microsoft Android Subsytem for Windows所抽取出來。
- 執行casualsnek的指令稿安裝libhoudini:
|
|
- 重啟Waydroid
|
|
- 試著安裝Subway Surfers這款僅提供ARM架構的小遊戲。如果開的起來代表ARM轉譯器正常運作。
5. Waydroid相關指令
若Waydroid無法啟動,請善用sudo systemctl status waydroid-container
和waydroid log
和sudo waydroid logcat
查看錯誤訊息。
用指令開啟Waydroid主畫面
|
|
啟動/停止Waydroid容器服務
|
|
Waydroid在啟動後可以進入Android shell,並且有Root權限
|
|
Waydroid用此指令安裝APK
|
|
讓Waydroid開啟多視窗模式,變成好像Linux的原生應用程式一般。啟動後按F11切換
|
|
如果要完全移除Waydroid:
|
|
Waydroid的Android系統資料放在~/.local/share/waydroid/data/
,系統映像檔位於/var/lib/waydroid
,APP圖示位於~/.local/share/applications/
6. 一些小優化
6.1. 強制旋轉螢幕
安裝Rotation Control這類APP,即可強制調整Waydroid螢幕方向。
6.2. 開啟模擬Wifi
安裝Package Manager,用於查看APP的套件名稱。
部份APP會要求開啟Wifi才能上網,那麼就如它所願,開啟fake wifi:
|
|
6.3. 模擬觸控功能
安裝Package Manager,用於查看APP的套件名稱。
有些APP認不到滑鼠點擊,需要啟用模擬觸控(fake touch):
|
|
6.4. Linux與Waydroid檔案傳輸
使用mount指令新增連結:
|
|
您也可以用ADB無線指令傳輸檔案。
7. 有關Waydroid的疑難雜症
解決Nivida顯示卡的問題
由於Nvidia圖形驅動程式不遵守公開標準,目前Waydroid在Nvidia顯示卡無法啟動。
硬要的話,編輯/var/lib/waydroid/waydroid_base.prop
,加入以下內容改用效能極差的軟體渲染。
|
|
如何在X11環境啟動Waydroid
- 啟動Weston
|
|
- 在Weston視窗開啟終端機,啟動Waydroid主畫面
|
|
不想要Waydroid APP圖示出現在桌面
Waydroid的Android APP圖示位於~/.local/share/applications/*aydroid
寫個指令稿於Waydroid關閉後刪除之。
Waydroid APP無法寫入內部儲存空間
如果出現此問題,請使用casualsnek的指令稿修正目錄權限:
|
|