PTT推薦

[聊天] How to Run PCRedive on Linux

看板PCReDive標題[聊天] How to Run PCRedive on Linux作者
gR7P4zXH
(tpn7gpdx)
時間推噓57 推:58 噓:1 →:9

--------------------------
2020/07/23 update
使用QEMU啟動的可再處理完image後參考下列參數啟動

qemu-system-x86_64 -enable-kvm -m 4096 -smp
4,sockets=1,cores=4,threads=1 \
-cpu host \
-drive file=pcredive.qcow2,format=qcow2,if=none,id=drive-virtio-disk0 \
-device
virtio-blk-pci,scsi=off,bus=pci.0,addr=0x8,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1
\
-soundhw ac97 -machine vmport=off -usb -device usb-tablet,bus=usb-bus.0 \ -netdev user,id=mynet,hostfwd=tcp::5555-:5555 \
-device virtio-net-pci,netdev=mynet \
-device virtio-vga,virgl=on -display gtk,gl=es -name 'PCRedive'

注意-display參數,與一般gl=on的差別是gl=es
減少一次複製,能有效減少cpu使用量並增進效能

--------------------------

各位佑樹好,考慮到Linux使用者日益增加,我希望也能在Linux上運行公主連結,在
linux上透過QEMU/KVM來建構為Android-x86基礎的虛擬機執行遊戲。windows使用者請左轉,謝謝,前方有Blues____和夜O模擬器。

(先感謝實驗室小精靈提供技術)

http://i.imgur.com/Spm75kl.jpg

圖 How to Run PCRedive on Linux

測試環境(Testing environment)

‧Ubuntu 19.10
‧libvirt 5.4.0
‧qemu-system-x86 4.0

硬體設備(Hardware)

‧I7-6700
‧32G Ram
‧Intel 512G SSD

測試方式(Testing)

‧創建Android x86虛擬機
‧打Magisk上去對PCReDive隱藏root
‧繞過PCReDive對虛擬機的設下的重重障礙
‧開心課金

動機(Motivation)

‧買不起手機且現有手機跑不動PCReDive
‧三個伺服器有六個帳號要顧
‧想在Linux上面跑

貢獻(Contribution)

‧打上最新版的Magisk到Android-x86
‧可以Migration的虛擬機!

------------------------------------------------------------------------------1.創建Android x86虛擬機

安裝libvirt+qemu/kvm

sudo apt install virt-manager

下載Android-x86 (https://www.android-x86.org/)安裝檔,並用virt-manager創建虛擬機。libhoudini是intel用來轉譯arm到x86的閉源函式庫,android-x86各版本搭載的
libhoudini支援度有所不同,建議各位下載8.1版。

android-x86 hostOS guestOS libhoudini 跑公連測試結果
7.1 (32bit) x86 x86 x decoder有問題導致3d動畫無法顯現8.1 (64bit) x64 x86 y 一切正常,推薦使用
9.0 (32bit) x86 x86 ? 在開啟遊戲時會用64bit libhoudini 開導致錯誤 (Intel退坑,android x 86社群沒人想port)

https://i.imgur.com/eEiE5O5.png

圖 How to Run PCRedive on Linux
https://i.imgur.com/aJyLHBZ.png
圖 How to Run PCRedive on Linux

初次開啟PCReDive遇到閃退的問題,且可用logcat觀察到以下訊息,請啟用Native
bridge

02-06 00:40:15.047 9274 9274 E art : No implementation found for void
com.unity3d.player.UnityPlayer.nativeRestartActivityIndicator() (tried
Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator and
Java_com_unity3d_player_UnityPlayer_nativeRestartActivityIndicator__)

https://i.imgur.com/2iLmS6l.png

圖 How to Run PCRedive on Linux

-----------------------------------------------------------------------------2. Magisk
我們對現有的kernel打上Magisk,需要一點Android知識,不過照著下列操作,完全不需要!
先將虛擬機關機,並將必要檔案提取出。

sudo -i
mkdir /mnt/vmdk /mnt/workspace
guestmount -a /var/lib/libvirt/images/vm1-1.qcow2 -m /dev/sda1 /mnt/vmdk
cp /mnt/vmdk/android-7.1-r3/ramdisk.img /mnt/workspace/ramdisk.img

不忘記備份

cd /mnt/workspace
cp ramdisk.img ramdisk.img.bak

查看ramdisk.img的格式並將其壓縮,這意味著我們可以用mkbootimg製作boot.img,在已安裝Magisk的android上對此boot.img進行patch。

# file ramdisk.img
ramdisk.img: gzip compressed data, from Unix, original size modulo 2^32
4208896
# mv ramdisk.img ramdisk.img.gz
# gunzip ramdisk.img.gz
# file /mnt/workspace/ramdisk.img
/mnt/workspace/ramdisk.img: ASCII cpio archive (SVR4 with no CRC)
# git clone https://github.com/xiaolu/mkbootimg_tools.git
# cd mkbootimg_tools
# ./mkbootimg --kernel /mnt/vmdk/android-7.1-r3/kernel --ramdisk
/mnt/workspace/ramdisk.img -o /mnt/workspace/boot.img

用任何方式送進已安裝Magisk的android,裝好的Android-x86自然也能幫上忙,於Magisk選擇Install > Select and Patch a File。
https://i.imgur.com/beRF8xq.png

圖 How to Run PCRedive on Linux

成功!取得magisk_patched.img,取出ramdisk.img送回虛擬機算是大功告成
https://i.imgur.com/IwPzMBV.png
圖 How to Run PCRedive on Linux

# cd mkbootimg_tools
# ./mkboot /mnt/workspace/magisk_patched.img /mnt/workspace/magisk_patched
Unpack & decompress ../magisk_patched.img to magisk_patched
kernel : kernel
ramdisk : ramdisk
page size : 2048
kernel size : 6008384
ramdisk size : 4794092
base : 0x10000000
kernel offset : 0x00008000
ramdisk offset : 0x01000000
tags offset : 0x00000100
cmd line :
ramdisk is unknown format,can't unpack ramdisk
Unpack completed.
# file /mnt/workspace/magisk_patched/ramdisk.packed
/mnt/workspace/magisk_patched/ramdisk.packed: ASCII cpio archive (SVR4 with
no CRC)
# mv ramdisk.packed ramdisk.img
# gzip ramdisk.img
# mv ramdisk.img.gz ramdisk.img
# cp ramdisk.img /mnt/vmdk/android-7.1-r3/ramdisk.img

最後卸載並開機

umount /mnt/vmdk

終於能啟用Magisk Hide加入PCReDive
https://i.imgur.com/PwVtqsZ.png

圖 How to Run PCRedive on Linux
https://i.imgur.com/6vyOK4z.png
圖 How to Run PCRedive on Linux


------------------------------------------------------------------------------3. 繞過PCReDive對虛擬機的限制
世界上已有解法,請各位自己去問log貓和goo狗。


------------------------------------------------------------------------------4. 實際遊玩
On 8.1: https://youtu.be/oYTWmPDKIvM
On 7.1: https://www.youtube.com/watch?v=5zKJpVKoDrY

(2/7更新)

v72807647: 7.1r3的virgl和h264 decoder有問題,改用8.1-64bit可解02/07 07:18
v72807647: 順暢度會提升很多,而且影片也可以播放02/07 07:19
v72807647: 可兩倍速,四倍仍有問題 https://youtu.be/oYTWmPDKIvM02/07 07:19

------------------------------------------------------------------------------5. 小結
在android-x86 8.1上運行能順利完成每日任務打公會戰

此外用libvirt+qemu/kvm玩有幾個優點
‧隨時migrate到其他host,由會長代刀
‧使用快照save/load,取最佳輸出


--

※ PTT留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.168.0.1 (臺灣)
PTT 網址
※ 編輯: gR7P4zXH (114.137.120.99 臺灣), 02/06/2020 08:37:09

a3780502/06 08:38VM你自己弄的嗎...(跪

peter062702/06 08:39太神啦

plzza0cats02/06 08:39大師

r2274255702/06 08:39想在實驗室偷玩公主連結?

sweetmiki02/06 08:44天了嚕

sweetmiki02/06 08:44人人有公主玩給推

sweetmiki02/06 08:46只要能打公會戰都不是問題(X

shinobunodok02/06 08:48你想在實驗室玩公主連結吼

ae32343602/06 09:00慾望果然是人類進步的原動力

mapleyu02/06 09:18神人推

sopdet02/06 09:23Linux使用者日益增加...?

fly958802/06 09:25日益增加沒錯啊

smart0eddie02/06 09:31OAO

Raynor02/06 09:38想在lab偷玩齁

sismiku02/06 09:49嗯嗯嗯 跟我想的一樣

miss8042302/06 09:56我看了什麼

david2264902/06 10:06太強了吧.... XD

aleckleehaha02/06 10:06你是不是要叫學弟們一起測軸?

tomphone02/06 10:08慾望無限

Incredible9902/06 10:19你是不是想推教授入坑

Incredible9902/06 10:20每次meeting 都在討論軸

Incredible9902/06 10:20計畫通欸牛逼逼

明年度的計劃,基於QEMU-KVM虛擬機器的公主連結容錯技術(X)

Jmoe02/06 10:25喔喔還不錯 剛好也有類似需求~ 不然linux的模擬器都不大行

ArrowEye02/06 10:30(′・ω・‵)b

x8030702/06 10:40窩不知道

karta322356702/06 10:53

lou361202/06 11:00嗯嗯 果然跟我想的一模一樣

driver556602/06 11:02先推不然別人以為我看不懂

suits89072602/06 11:04嗯嗯跟我想的一樣

d912315502/06 11:04雖然不是Linux使用者 還是跪著推

SHiroo02/06 11:06

PTTallener02/06 11:07...

s880222802/06 11:09這個格式 宅氣沖天

Kuroyukihime02/06 11:12我以為會來這版就夠宅了XD

bheegrl02/06 11:31真愛

x41122x02/06 11:49慾望使人進步

ap9xxx02/06 11:50看不懂總之先推

abjeffop02/06 11:52這專業不凡 我還是先跪再推

wutomy200002/06 11:54公主連結是一款真正適合工程師的遊戲

dan90105402/06 11:58先推,不然被人發現我看不懂

chons233202/06 11:59教授:欸欸那個你等等幫我出個刀

arrenwu02/06 12:04看了這個教學,我還是用Windows好了

Ericz700002/06 12:07

AL10702/06 12:07下午瞇挺麻煩交出最新的軸 洩洩

sirakuma02/06 12:14meeting結束了很閒齁

leo051902/06 12:29你的IP好酷

windmai02/06 12:35剛剛哪個學弟亂出刀的!

Xunion02/06 12:42研究精神給推

enders34602/06 13:02雖然看不懂但是先推再說

hankstak02/06 13:16記得高中電腦課用linux 什麼遊戲都玩不了

https://twitter.com/i/status/1191012727583473666

globalspirit02/06 13:27暴雪:你沒有手機嗎?

https://www.youtube.com/watch?v=ly10r6m_-n8

kirimaru7302/06 13:41請問你們fine tune軸用的optimizer是哪一種?

longkiss061802/06 14:03有這等實力竟買不起手機

小精靈有買二手旗艦機,他只是覺得好玩搞這個

os5566ga02/06 14:11不要在lab偷玩好不好XD

StCor02/06 15:14螢幕右邊

a6548291302/06 15:22你484來曬掛軸的www

在測軸

longkiss556602/06 15:33教授在你後面 他非常火

Jimmy03048902/06 15:41優文

eplovecm02/06 17:35好猛啊

rhythm732102/06 18:06推 以後可以在lab 灌公主了

rhythm732102/06 18:07在lab 打公會戰lul

s9m87o02/06 19:29優文

HuashenBAO02/06 20:42為什麼我的實驗室沒有小精靈ㄋ

半夜留守實驗室會發現

ShibaTatsuya02/06 21:14優文

v7280764702/07 07:187.1r3的virgl和h264 decoder有問題,改用8.1-64bit可解

v7280764702/07 07:19順暢度會提升很多,而且影片也可以播放

v7280764702/07 07:19可兩倍速,四倍仍有問題 https://youtu.be/oYTWmPDKIvM

max41028602/07 07:23等等去lab測一下那個軸

※ 編輯: gR7P4zXH (1.163.8.163 臺灣), 02/08/2020 16:58:03 ※ 編輯: gR7P4zXH (1.163.8.163 臺灣), 02/08/2020 16:58:49 ※ 編輯: gR7P4zXH (140.115.52.18 臺灣), 07/23/2020 20:27:24