要在Linux上跑Android APP,於Android-x86安裝教學一文便有提及用Android-x86虛擬機 + QtScrcpy的安裝過程,本篇文章則是要來嘗試一點不一樣的Android-x86:“BlissOS”。
雖然新版BlissOS 14.10 (Android 11)尚在開發中,但開發者已經放出了測試用的映像檔。內建Google Play商店,不用另外裝轉譯器也能玩64位元的3D遊戲,可以說是很大的進步了。
本文將討論在Linux上安裝Bliss OS 14.10的QEMU虛擬機。
0. 為何要選擇Bliss OS?
Bliss OS是什麼呢?它是基於Android-x86開發的Android系統,專門設計給桌上型電腦跑Android用。在Android-x86的基礎上預載了許多實用工具,並持續更新Linux核心和Android版本,提昇新硬體相容性。除此之外Bliss OS團隊也會將成果貢獻給Waydroid專案。
比較一下便可知道,Android-x86官方網站最新的版本是Android 9.0,而Bliss OS最新測試版已來到Android 12。
Android版本舊看似不是大問題,但是在ARM轉譯上就有很大差距。Android-x86 9.0依賴Intel的"liboudini"技術,在x86架構的Android系統上執行ARM架構的APK,但只支援到32位元ARM-v7eabi的APK而已,現在有越來越多開發者只提供64位元ARM-v8a的APK哪。因此就得改用Android 11以上的libhoudini或libndk,以相容64位元ARM架構的APK。
除了Android版本較新能相容更多電腦硬體外,Bliss OS也加入了一些讓Android變得像是電腦的功能,例如浮動視窗,還有"Gearlock"取代傳統的Android recovery。
1. 系統資訊 & 需要的軟體
- Host OS: Arch Linux
- CPU:Intel i5-10210U
- GPU:Intel® UHD Graphics 620
- Android-x86版本:11.0
- QEMU版本:7.1.0
- virglrender版本:0.9.1
確認CPU已經開啟虛擬化、KVM核心模組已經載入。
在Linux系統上安裝QEMU
、Libvirt
、Virt Manager
套件。Arch Linux詳情參考這裡。
2. 開始安裝Bliss OS虛擬機
Bliss OS官方網站目前提供Android 9 ~ Android 12的ISO。
為了執行64位元ARM應用程式,故使用Bliss OS開發團隊在Telegram群組釋出的測試版映像檔,從MEGA下載Bliss-v14.10-x86_64-OFFICIAL-opengapps-20221030.iso
的檔案。
參照Android-x86 QEMU虛擬機安裝教學建立虛擬機。RAM建議分配至少6GB。
Bliss OS 14.10內建Google Play商店;ARM轉譯器預設已啟用,不用手動安裝。
3. 實際在Bliss OS玩遊戲
為了測試Bliss OS轉譯器能耐,以下遊戲全部用ARM-v8架構的APK測試。如果Google Play不給安裝,自行找APK。
《水果忍者》、《Temple Run 2》正常執行。如果滑鼠點選沒反應,必須用QtScrcpy來模擬觸控點選。
Reddit網友建議測試《Fortnite》 Android版,結果這個遊戲連處理器架構都會偵測,看來Android-x86是沒辦法跑的了。
接著是《原神》,直接開會崩潰,要配合這個指令稿才能進入遊戲。
另一款大型遊戲《幻塔》不用任何指令稿就能成功進入遊戲。嘗試寫了QtScrcpy的指令稿如下,可用鍵盤控制角色移動:
|
|
另外這個build有個bug,那就是播放影片會變成綠色的。正好可以驗證遊戲哪些場景是用影片草草帶過XD