先看一下它的技术组成。
VirtualBox VM 6.1.36_OSE r152435 win.amd64
C:\Program Files\MuMuVMMVbox\Hypervisor\MuMuVMMHeadless.exe
00:00:00.107800 SUP: Loaded MuMuVMMVMMR0.r0 (C:\Program Files\MuMuVMMVbox\Hypervisor\MuMuVMMVMMR0.r0) at 0xXXXXXXXXXXXXXXXX - ModuleInit at XXXXXXXXXXXXXXXX and ModuleTerm at XXXXXXXXXXXXXXXX using the native ring-0 loader
00:00:00.107808 SUP: VMMR0EntryEx located at XXXXXXXXXXXXXXXX and VMMR0EntryFast at XXXXXXXXXXXXXXXX
00:00:00.107810 SUP: windbg> .reload /f C:\Program Files\MuMuVMMVbox\Hypervisor\MuMuVMMVMMR0.r0=0xXXXXXXXXXXXXXXXX
00:00:00.109415 Guest OS type: 'Linux26_64'
00:00:00.113900 File system of 'C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-0\Snapshots' (snapshots) is unknown
00:00:00.113909 File system of 'C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-base\system.vdi' is ntfs
00:00:00.114853 File system of 'C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-0\ota.vdi' is ntfs
00:00:00.115851 File system of 'C:\Program Files\Netease\MuMu Player 12\vms\MuMuPlayer-12.0-0\data.vdi' is ntfs
Attempting fall back to NEM: AMD-V is not available
VboxPlayer
C:/Program Files/NetEase/MuMu Player 12/shell
技术组成结论
从日志里看出拥有很明显的虚拟机特征,虚拟磁盘vdi,virtio-net,明确的使用版本VirtualBox VM 6.1.36。
Android 版本是 Android 12。
目前猜测,通过控制 vboxmanager 命令启动一个 VBox 进行虚拟化,虚拟化启动以后,通过shell给虚拟机操作系统发送消息进行控制。
提示 AMD-V is not available 的原因
从 https://superuser.com/questions/1374694/amd-v-is-not-available-verr-svm-no-svm 以及 https://mumu.163.com/help/20210510/35043_946541.html?fqbanner 可得, AMD-V 启用的前提是 Hypervisor 也需要禁用。 部分Win10及以上系统的电脑在开启VT-x功能后,检测工具界面会有部分未通过检测的提示(如下图内红字提示),这是因电脑没有关闭掉Hyper-V或内核隔离导致。
尝试用模拟机去打开金融应用
模拟机直接闪退。
如何查看真机的日志
https://developer.android.com/studio/debug/logcat https://chenghu.online/posts/caf38928/
log:
2024-12-30 16:31:21.789 3048-3048 cmb.pb pid-3048 W Unexpected CPU variant for X86 using defaults: x86_64
2024-12-30 16:31:21.790 3048-3048 libnb pid-3048 V enter native_bridge2_initialize /data/user/0/cmb.pb/code_cache arm
2024-12-30 16:31:21.796 3048-3048 HP pid-3048 D initialize private_dir:/data/user/0/cmb.pb/code_cache instruction_set:arm
2024-12-30 16:31:21.798 3048-3048 cmb.pb pid-3048 E Not starting debugger since process cannot load the jdwp agent.
2024-12-30 16:31:22.199 3048-3048 libc pid-3048 A Fatal signal 11 (SIGSEGV), code 128 (SI_KERNEL), fault addr 0x0 in tid 3048 (cmb.pb), pid 3048 (cmb.pb)
2024-12-30 16:31:22.285 3079-3079 DEBUG pid-3079 A Cmdline: cmb.pb
2024-12-30 16:31:22.285 3079-3079 DEBUG pid-3079 A pid: 3048, tid: 3048, name: cmb.pb >>> cmb.pb <<<
real log:
2024-12-30 16:41:27.680 1258-1299 ActivityTaskManager system_server I Displayed cmb.pb/.app.mainframe.container.PBMainActivity: +1s291ms
显然, 对于真机应用的日志明显少了很多。