[聊天] How to Run PCRedive on Linux
各位佑樹好,考慮到Linux使用者日益增加,我希望也能在Linux上運行公主連結,在
linux上透過QEMU/KVM來建構為Android-x86基礎的虛擬機執行遊戲。windows使用者請左
轉,謝謝,前方有Blues____和夜O模擬器。
(先感謝實驗室小精靈提供技術)
http://i.imgur.com/Spm75kl.jpg

測試環境(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


初次開啟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

-----------------------------------------------------------------------------
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

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

# 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


------------------------------------------------------------------------------
3. 繞過PCReDive對虛擬機的限制
世界上已有解法,請各位自己去問log貓和goo狗。
------------------------------------------------------------------------------
4. 實際遊玩
On 8.1: https://youtu.be/oYTWmPDKIvM
(2/7更新)
推
02/07 07:18,
02/07 07:18
→
02/07 07:19,
02/07 07:19
→
02/07 07:19,
02/07 07:19
------------------------------------------------------------------------------
5. 小結
在android-x86 8.1上運行能順利完成每日任務打公會戰
此外用libvirt+qemu/kvm玩有幾個優點
‧隨時migrate到其他host,由會長代刀
‧使用快照save/load,取最佳輸出
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 192.168.0.1 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/PCReDive/M.1580949325.A.64E.html
※ 編輯: gR7P4zXH (114.137.120.99 臺灣), 02/06/2020 08:37:09
推
02/06 08:38,
5年前
, 1F
02/06 08:38, 1F
推
02/06 08:39,
5年前
, 2F
02/06 08:39, 2F
推
02/06 08:39,
5年前
, 3F
02/06 08:39, 3F
推
02/06 08:39,
5年前
, 4F
02/06 08:39, 4F
推
02/06 08:44,
5年前
, 5F
02/06 08:44, 5F
→
02/06 08:44,
5年前
, 6F
02/06 08:44, 6F
推
02/06 08:46,
5年前
, 7F
02/06 08:46, 7F
→
02/06 08:48,
5年前
, 8F
02/06 08:48, 8F
推
02/06 09:00,
5年前
, 9F
02/06 09:00, 9F
推
02/06 09:18,
5年前
, 10F
02/06 09:18, 10F
推
02/06 09:23,
5年前
, 11F
02/06 09:23, 11F
推
02/06 09:25,
5年前
, 12F
02/06 09:25, 12F
推
02/06 09:31,
5年前
, 13F
02/06 09:31, 13F
推
02/06 09:38,
5年前
, 14F
02/06 09:38, 14F
推
02/06 09:49,
5年前
, 15F
02/06 09:49, 15F
推
02/06 09:56,
5年前
, 16F
02/06 09:56, 16F
推
02/06 10:06,
5年前
, 17F
02/06 10:06, 17F
推
02/06 10:06,
5年前
, 18F
02/06 10:06, 18F
推
02/06 10:08,
5年前
, 19F
02/06 10:08, 19F
推
02/06 10:19,
5年前
, 20F
02/06 10:19, 20F
→
02/06 10:20,
5年前
, 21F
02/06 10:20, 21F
→
02/06 10:20,
5年前
, 22F
02/06 10:20, 22F
明年度的計劃,基於QEMU-KVM虛擬機器的公主連結容錯技術(X)
推
02/06 10:25,
5年前
, 23F
02/06 10:25, 23F
推
02/06 10:30,
5年前
, 24F
02/06 10:30, 24F
推
02/06 10:40,
5年前
, 25F
02/06 10:40, 25F
推
02/06 10:53,
5年前
, 26F
02/06 10:53, 26F
→
02/06 11:00,
5年前
, 27F
02/06 11:00, 27F
推
02/06 11:02,
5年前
, 28F
02/06 11:02, 28F
推
02/06 11:04,
5年前
, 29F
02/06 11:04, 29F
推
02/06 11:04,
5年前
, 30F
02/06 11:04, 30F
推
02/06 11:06,
5年前
, 31F
02/06 11:06, 31F
推
02/06 11:07,
5年前
, 32F
02/06 11:07, 32F
噓
02/06 11:09,
5年前
, 33F
02/06 11:09, 33F
推
02/06 11:12,
5年前
, 34F
02/06 11:12, 34F
推
02/06 11:31,
5年前
, 35F
02/06 11:31, 35F
推
02/06 11:49,
5年前
, 36F
02/06 11:49, 36F
推
02/06 11:50,
5年前
, 37F
02/06 11:50, 37F
推
02/06 11:52,
5年前
, 38F
02/06 11:52, 38F
推
02/06 11:54,
5年前
, 39F
02/06 11:54, 39F
推
02/06 11:58,
5年前
, 40F
02/06 11:58, 40F
推
02/06 11:59,
5年前
, 41F
02/06 11:59, 41F
推
02/06 12:04,
5年前
, 42F
02/06 12:04, 42F
→
02/06 12:07,
5年前
, 43F
02/06 12:07, 43F
推
02/06 12:07,
5年前
, 44F
02/06 12:07, 44F
推
02/06 12:14,
5年前
, 45F
02/06 12:14, 45F
推
02/06 12:29,
5年前
, 46F
02/06 12:29, 46F
推
02/06 12:35,
5年前
, 47F
02/06 12:35, 47F
推
02/06 12:42,
5年前
, 48F
02/06 12:42, 48F
推
02/06 13:02,
5年前
, 49F
02/06 13:02, 49F
推
02/06 13:16,
5年前
, 50F
02/06 13:16, 50F
推
02/06 13:27,
5年前
, 51F
02/06 13:27, 51F
推
02/06 13:41,
5年前
, 52F
02/06 13:41, 52F
推
02/06 14:03,
5年前
, 53F
02/06 14:03, 53F
小精靈有買二手旗艦機,他只是覺得好玩搞這個
推
02/06 14:11,
5年前
, 54F
02/06 14:11, 54F
推
02/06 15:14,
5年前
, 55F
02/06 15:14, 55F
推
02/06 15:22,
5年前
, 56F
02/06 15:22, 56F
在測軸
推
02/06 15:33,
5年前
, 57F
02/06 15:33, 57F
推
02/06 15:41,
5年前
, 58F
02/06 15:41, 58F
推
02/06 17:35,
5年前
, 59F
02/06 17:35, 59F
推
02/06 18:06,
5年前
, 60F
02/06 18:06, 60F
→
02/06 18:07,
5年前
, 61F
02/06 18:07, 61F
推
02/06 19:29,
5年前
, 62F
02/06 19:29, 62F
推
02/06 20:42,
5年前
, 63F
02/06 20:42, 63F
半夜留守實驗室會發現
推
02/06 21:14,
5年前
, 64F
02/06 21:14, 64F
推
02/07 07:18,
5年前
, 65F
02/07 07:18, 65F
→
02/07 07:19,
5年前
, 66F
02/07 07:19, 66F
→
02/07 07:19,
5年前
, 67F
02/07 07:19, 67F
推
02/07 07:23,
5年前
, 68F
02/07 07:23, 68F
※ 編輯: gR7P4zXH (1.163.8.163 臺灣), 02/08/2020 16:58:03
※ 編輯: gR7P4zXH (1.163.8.163 臺灣), 02/08/2020 16:58:49