作者ivon852 (內容農場殺手)
看板Linux
標題[閒聊] 三個開源的電腦Android「模擬器」方案
時間Sat Oct 22 17:44:32 2022
市面上已經有很多Android模擬器,花樣很多,不外乎就是能在x86電腦上玩x86/ARM架構的
手機遊戲,甚至多開、掛機都不是難事,多半也支援鍵盤映射。
但他們只支援Windows,有些可能還有MacOS,但支援Linux的是少之又少。在比較有名的模
擬器中,只有面向開發人員的Genymotion和Android Studio模擬器有提供Linux版。
所以,Linux用戶想在電腦上跑Android甚至打遊戲,可以找開源軟體組成的解決方案,達成
類似「模擬器」的效果,順便擺脫常規模擬器的各種業配和廣告置入。
下表是目前2022年,在x86 Linux電腦跑Android遊戲的3個開源方案,支援GPU加速和ARM轉
譯,有些方案Windows和MacOS也可以使用。
https://i.imgur.com/mbfxwRu.png
主要在Gentoo和Arch上測試,且Nvidia對Wayland和VirGL相性不好,使用Intel內顯測試圖
形效能。
## 1. Android-x86 + QEMU VirGL
https://i.imgur.com/oqxvnaY.jpg
用QEMU安裝Android-x86的虛擬機,虛擬出完整環境。透過Linux的KVM核心模組,加上獨顯G
PU直通可大幅改善虛擬機的效能。或者編譯支援VirGL的QEMU讓虛擬機使用半虛擬化的GPU加
速。
此外Android 9的ARM轉譯器還算穩定,要執行手遊是沒問題的。ROM還可以嘗試BlissOS團隊
修改的版本。
由於QEMU可以只靠指令運作,寫個指令稿多開是有可能的。Windows和MacOS也能執行QEMU,
甚至有人在Windows上成功跑過VirGL。
有些遊戲虛擬機滑鼠按了沒反應,可以用QtScrcpy解決。
缺點同樣明顯,VirGL跟Nvidia(目前的)顯示卡相性不合,且不一定每個發行版都有提供Vir
GL。不然一般發行版提供的QEMU就剩內建的QXL顯示卡可以用,效能很差。
## 2. Waydroid
https://i.imgur.com/rfulVs3.jpg
從Anbox修改而來的容器方案,需要桌面環境使用Wayland顯示協定才能運作。透過指令稿可
安裝Magisk和GApps。
Waydroid比較省資源,玩遊戲也最流暢。Waydroid甚至可以用在ARM架構的Linux裝置上(如P
inePhone),使其支援Android APP。
缺點是Waydroid還在Android 10,ARM轉譯器問題一堆,導致目前只能穩定運作x86架構的AP
K,其架構也不適合多開。此外Waydroid不支援Nvidia顯示卡也是個大問題。
## 3. ReDroid
https://i.imgur.com/FQXt3GC.jpg
透過Docker執行Android容器,再用Scrcpy連線到桌面,提供x86/ARM架構的映像檔,可用來
架設雲手機。其支援使用Nvidia的GPU加速,再用dockefile方式安裝ARM轉譯器。
Docker容器的特性使其能夠快速部署在伺服器上,要多開也是有可能的。算是大部份Linux
發行版比較能正常運作的方案。
缺點是目前沒有內建Google框架(專有軟體),作者給的Google框架編譯過程又有問題。某些
遊戲在轉譯ARM指令時會吃掉大量RAM。
結論,Android-x86最穩固但難度高,Waydroid跨架構又省資源,ReDroid只差Google框架就
完美了。
--
想辦法在開源系統跑閉源遊戲
https://i.imgur.com/FUrYLxA.png
Arch是真愛
https://i.imgur.com/0ja0Tx8.png
論使用Gentoo的好處
https://i.imgur.com/QjvfLfR.png
是言論自由,不是免費啤酒
https://i.imgur.com/sNmNm9x.png
流量密碼
https://i.imgur.com/rXERMcM.png
刪除user? 我不記得有這功能
https://i.imgur.com/xcml0xN.png
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.138.37.210 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Linux/M.1666431874.A.115.html
※ 編輯: ivon852 (223.138.37.210 臺灣), 10/22/2022 17:50:48
1F:推 Bencrie: 還在 Android 10 不是缺點吧 XD10/22 20:06
2F:→ Bencrie: AOSP 都是越新版越難改,會動就阿密陀佛了 XD10/22 20:07
Android-x86很穩沒錯啦,但Waydroid那個版本的ARM轉譯器就處於要穩不穩,要新不新的狀
態,所以一直有人建議換成Android 11
3F:→ Bencrie: 圖形效能要最好就是跑容器然後圖形硬體用 mesa driver10/22 20:09
4F:→ Bencrie: Anbox/QEMU 走 libOpenglRender 那套會變慢10/22 20:10
5F:推 jerejesse: 感謝整理10/22 22:30
6F:推 tennyleaz: BlissOS那種直接安裝,可能還是性能最好的10/22 22:43
Dual-boot也是個選項啦,但有些遊戲還是要自行處理沒有觸控操作的問題。我個人還是希
望能像Windows用模擬器那樣使用Android APP
7F:推 drm343: 原來現在已經發展到這樣了10/22 22:43
※ 編輯: ivon852 (36.236.238.193 臺灣), 10/22/2022 23:14:52
※ 編輯: ivon852 (36.236.238.193 臺灣), 10/22/2022 23:19:52
8F:推 idisnothing: 推實測分享10/23 15:40
9F:推 s9209122222: 可是我之前去 Google play 下載遊戲都打不開耶10/23 16:27
10F:→ s9209122222: 我是說 Waydroid10/23 16:27
11F:推 s9209122222: 我只有裝 libhoudini 沒裝 libndk 會怎樣?10/23 16:33
沒裝libhoudini前,Play商店只會顯示x86架構程式,應該都開的起來。至於裝了後也沒用
,因為Android 10不論libhoudini還是libndk(就算二個都裝)都十分不穩定,幾乎沒一個AR
M架構的遊戲開的起來。
※ 編輯: ivon852 (36.236.238.193 臺灣), 10/24/2022 02:13:02
12F:推 idisnothing: 那像全家便利商店或麥當勞APP在QEMU+Android-x86 9.010/24 06:01
13F:→ idisnothing: 下會顯示與此裝置不相容是因為Safetynet沒過嗎? 10/24 06:02
14F:→ idisnothing: 剛把網路上下載來的APK直接裝進去也還是不行 要在非 10/24 12:13
15F:→ idisnothing: 原廠ROM使用這類APP確實挺累人的 10/24 12:13
16F:推 Bencrie: 那是 houdini 版本的問題吧10/24 13:02
17F:推 Bencrie: 不然 intel 要怎麼拐人去做 android cloud gaming 10/24 13:10
18F:→ idisnothing: 應該是APP寫得比較嚴謹造成的 全家APP執行後畫面如下 10/24 13:17
19F:→ idisnothing: 應該是偵測到系統root過所以就不執行了 10/24 13:17
21F:→ idisnothing: 至於麥當勞APP點進去後只會得到白畫面 我在裝有 10/24 13:20
22F:→ idisnothing: LineageOS的手機執行麥當勞APP也是這樣 10/24 13:20
我執行一些中國的APP更是直接閃退,看來他們很不爽虛擬機
23F:推 s9209122222: 我 libhoudini 是用 github 上面那個腳本裝的 10/24 16:34
對,然後那個腳本的作者叫問他app崩潰的人去找測試版Android 11的Waydroid來用...但An
droid 11在最新版Arch上開不起來
※ 編輯: ivon852 (223.139.141.84 臺灣), 10/25/2022 20:44:20
24F:推 Bencrie: intel 沒公開新版 houdini 出來,arm 轉譯就沒救吧 10/26 01:57
25F:推 sppmg: 感謝整理,一直想在linux 上裝淘寶app(當然要外加隔離)。 10/27 05:46
26F:推 sppmg: 發現知乎上好像有人說不能用…… 10/27 05:51