iOS UTM虚拟机安装使用教程
时间:2023-07-02 03:57:01 | 来源:网站运营
时间:2023-07-02 03:57:01 来源:网站运营
iOS UTM虚拟机安装使用教程:
官方文档内容已经齐全,此教程停更
官方文档:https://docs.getutm.app
此文章仅适用于 UTM 3.x 版本,部分内容已过时
UTM 介绍
UTM 是一个运行在 iOS11+ 或 macOS11+ 的基于 QEMU 的 iOS/iPadOS/macOS 平台的虚拟机,支持运行多种架构的 Linux、macOS、Windows 等多种操作系统
- 支持模拟30+种处理器,包括x86平台,ARM平台,PPC平台,RISC-V平台和SPARC平台
- 得益于SPICE,通过准虚拟化实现了快速的本地图形
- 使用qemu TCG实现基于JIT的加速
- 使用最新的应用程序接口为iOS11+提供美观友好的UI
- 直接从设备上创建、管理和运行虚拟机
UTM有两个分支:UTM和UTM SE- UTM:即为UTM标准版本,提供iOS/iPadOS及macOS版本。
- UTM SE:即为 UTM Slow Edition(缓慢版),提供 iOS/iPadOS 版本
相比 UTM 标准版本,UTM SE 使用“线程解释器”(threaded interpreter),性能优于“传统解释器”(traditional interpreter),比JIT慢,因此,UTM SE 不需要越狱或任何 JIT 实现方法,可以作为常规应用旁加载。
UTM SE 大约比 UTM 标准版本慢了60%以上。UTM SE 可虚拟架构不全,包含以下架构:ARM、PPC、RISC-V 和 i386 以及 X86_64
在iOS平台的缺点
iPhone/iPad 使用的 CPU 是经过修改的 AArch64 架构。对于苹果 A 系列中从 A10 开始的使用 ARMv8.1-A 的 SoC 在
理论上支持原生虚拟化,从 ARM Mac 诞生前的试验品——A12Z 的 Mac Mini DTK 可以使用虚拟化加速运行虚拟机可以大致验证这个结论。
以上部分内容来源于维基百科
https://en.wikipedia.org/wiki/Comparison_of_ARMv8-A_processors
https://en.wikipedia.org/wiki/AArch64
但在 iOS SDK 中,Apple 并没有提供像 macOS 平台的 hvf 那样的虚拟化接口,这意味着 UTM 在 iOS 平台面临着只能使用软件加速(TCG)的局面。没有硬件虚拟化的加速对虚拟机转换效率的影响巨大,仅使用软件加速的 QEMU 的效率相比起使用 KVM 等虚拟化技术的 QEMU 有着肉眼可见的差距,
大致就是:一台接近宿主机性能的现代机器和一台二十一世纪初的古董级机器的差距。
UTM 标准版本使用 JIT 加速软件模拟,需要开发者签名或像 AltStore 这样的自签,而不能使用企业签名。
AltStore 最显著的缺点就是只能生效7天,而付费开发者更是需要 688CNY,这对正常用户并不友好。
在 iOS 14.1~14.2 和 iOS 14.3+ 平台运行 UTM 需要 Xcode 调试,或是通过 Jitterbug 或 AltJIT 来启动。其中Xcode 调试与 AltJIT 都依赖 PC/Mac,使用起来并不方便。
虽然 Jitterbug 不需要持续连接 PC,但由于其需要通过 PC/Mac 生成配对文件,依然需要 PC/Mac 完成操作,并且因为需要利用 VPN 模拟 Xcode 调试,所以也是需要开发者签名的。
总结就是:在目前的 iOS 平台,几乎没有任何实用性,费时费精力,吃力不讨好。
iOS 平台安装要求
UTM 标准版使用 JIT 加速,但 iOS 并非所有版本都允许使用 JIT,这也是 UTM 系统版本的要求的原因。
满足以下任意要求即可安装 UTM 标准版。
- 满足 iOS11+ 且具备越狱环境
- 系统版本为 iOS11-iOS13.7
- 系统版本为 iOS14.2-iOS14.3
- 可以使用 Xcode 调试,AltJIT 或使用 Jitterbug 的 iOS11+ 设备
满足 iOS11+ 的所以设备均可运行 UTM SE。
关于安装方案的选择
UTM 标准版本不可以使用企业签名,Jitterbug 不可以使用 AltStore 自签或企业签名,使用了错误的签名会导致其不能正常运行。- UTM1.0.0 标准版本:适用于iOS11-iOS13.7或iOS14.2-iOS14.3,由于UTM2.0 之后 QEMU 后端版本为 5.2.0+,对于XP虚拟机并不友好,适合想运行XP的用户。
- 仅 UTM 标准版本:适用于 iOS14.2-14.3或 iOS11 以上已越狱,一般适合老版本iOS用户和越狱用户。
- UTM + Jitterbug:适用于 iOS14+,适合新版本 iOS 用户。
- UTM SE:适用于 iOS11+,适合不能开发者签名或自签的用户,但效率很低。
iOS 安装 UTM / JitterbugLite
安装 UTM / JitterbugLite 需要注意签名方式,企业签名只适用于 UTM SE。
UTM 标准版本可以进行自签或付费开发者签名,Jitterbug 需要签名证书的 provisioning profile 中具有
Network Extensions 和 Personal VPN 权限。UTM可以通过 AltStore 自签、开发者签名、越狱安装。
下载 UTM.ipa 文件:GitHub下载链接
AltStore安装UTM
使用 AltStore 需要使用 AppleID 登录,单个 Apple 账号有签名数量限制,每一次签名生效7天,AltServer 端需要 macOS10.14+、Windows 10及以上或 Linux 设备。官方链接:AltStore
AltServer端
安装iTunes:iTunes下载链接
安装ICloud:iCloud下载链接
注意:iTunes 和 iCloud 均从 Apple 官网下载而非 Microsoft Store。- 下载 AltServer 安装程序:AltServer Installer下载链接
- 解压 ZIP 压缩包即可得到 setup.exe 文件,并运行其来进行安装。
- 安装后启动 AltServer,这时 AltServer 不会出现在前台,而是出现在“通知”和任务栏中。
- 连接 iPhone/iPad 设备,并信任该电脑。
- 右键 AltServer 在任务栏中的图标,选择 “Install AltStore”。
- 这时输入自己的 Apple ID 及密码,即可等待 AltStore 安装完成。
下载 AltServer 程序:AltServer下载链接
- 解压 ZIP 文件即可得到 AltStore.app,并将其复制到应用程序文件夹中。
- 启动 AltSever,这时 AltServer 不会出现在前台,而是在 Finder 菜单栏中出现 AltServer 图标。
- 连接iPhone/iPad设备,并信任该电脑。
对于 macOS10.14,需要打开 iTunes,为连接的设备启用 WIFI 同步。对于 macOS10.15,需要打开 Finder,为连接的设备启用“在 WIFI 上显示此 iPhone/iPad ”。4. 点击 Finder 菜单栏中的 AltServer 图标,点击 “Install AltStore”,随后选择需要安装 AltStore 的设备。
5. 输入 Apple ID 及密码。
第一次使用 AltServer 需要安装邮件插件:
- 单击 AltServer 菜单中的 “Install Mail Plug-in”。
- 输入 macOS 用户密码,并授予 AltServer 安装插件的权限。
- 打开“邮件” APP,如果已经运行则需要重启。
- 选择“首选项”,并点击“管理插件”。
- 开启 “AltPlugin.mailbundle” 。
- 点击应用并重启完成安装。
AltStore端
使用 AltStore 需要确保与 AltServer 设备在同一 WIFI 且已连接 AltServer 设备。AltStore 签名无法授予 Jitterbug 完整的网络权限,不可以使用 AltStore 签名 Jitterbug。下载 UTM.ipa 文件:GitHub下载链接
- 在 iPhone/iPad 端下载则通过 “分享”,传输到 “文件” APP。
- 在 AltServer 端下载则可以通过 AirDrop、iTunes 等方式传输到 iPhone/iPad。
在 “My Apps” 中,点击右上角 “+” 按钮,随后选择 UTM.ipa 文件。
等待安装完成即可。
如果你拥有 AltStore 测试版,可以通过添加 UTM的 AltStore存储库来安装 UTM。
UTM AltStore 存储库:添加AltStore存储库
越狱安装UTM
UTM 的运行需要 AppSync Unified,可以在Karen的源
中安装。图形包管理器安装:
首先安装 AppSync Unified 确保 UTM 能够正常运行。
在你的包管理器比如 Cydia/Sileo/Zebra 中添加 Karen源 来安装 AppSync Unified,随后添加UTM源来安装UTM.
- Karen源:https://cydia.akemi.ai/
- UTM源: https://cydia.getutm.app/
命令行dpkg/Filza安装:
UTM官方源在国内速度可能让人难以接受,可以通过 Github反代 或在 UTM官方QQ交流群 中快速下载。
UTM Deb下载链接:Releases · utmapp/UTM
将 UTM.deb “分享“到 Filza。 选择 UTM.deb,选择安装即可。
通过安装的终端或SSH来运行 dpkg 命令,终端可以选择安装 NewTerm。
# dpkg 需要 root 权限来安装 deb ,登陆到 root 用户,默认 root 密码为 alpine。$ su root
通过 dpkg 安装 UTM。
#dpkg -i /path/to/file
iOS 安装 Jitterbug
Jitterbug 需要 Network Extensions 和 Personal VPN 权限。JitterbugLite 无特殊签名要求,但需要两台 iOS14+ 的设备。可以通过在iSign签名网这样的开发者签名网站签名 Jitterbug。
可能还需要单独与签名站客服说明需要开启 Network Extensions 和 Personal VPN 权限。iOS UTM 标准版启动方式
上文提到,UTM 标准版需要 JIT 权限,可以通过 AltJIT 和 Jitterbug 启动 UTM。
Github 上的 JitStreamer 项目也可以授予 UTM JIT 权限,由于其提供的服务器不包含大陆,暂时不做教程。 官方网站:JitStreamer GitHub 项目:Github
Jitterbug 启动 UTM
Jitterbug 第一次使用需要生成配对文件,此后皆可独立启动。
生成配对文件
Jitterbug 通过 Jitterbugpair 生成配对文件。
将设备连接到 PC 并信任此电脑。
Jitterbugpair 提供 Windows/Linux/macOS版本, 从Github Jitterbug中下载对应自己操作系统的 Jitterbugpair。
确保已经安装 iTunes,且能正确识别连接设备。
将下载的 jitterbugpair-win64.zip 解压得到 jitterbugpair.exe 和 libwinpthread-1.dll。
打开“CMD”,将 jitterbugpair.exe,拖入 “CMD“ 窗口内,即可快速输入其绝对路径。
回车运行,生成成功则返回 “SUCCESS:wrote to ‘UUID'”。
配对文件将生成在 Windows 用户目录,例如 “C:/Users/Administrator/ *.mobiledevicepairing"。
将下载的 jitterbugpair-macos.zip 解压得到 jitterbugpair。
打开终端,将解压得到的 jitterbugpair 从 Finder 拖入终端,即可快速输入其绝对路径。
回车运行,生成成功则返回 “SUCCESS:wrote to ‘UUID'”。
配对文件 “*.mobiledevicepairing” 将生成在 macOS用户目录中。
将下载的 ”jitterbugpair-linux.zip“ 解压
$ unzip /path/to/jitterbugpair-linux.zip
得到 jitterbugpair。
$ unzip jitterbugpair-linux.zip Archive: jitterbugpair-linux.zip inflating: jitterbugpair
生成配对文件前首先需要安装 usbmuxd。
#apt install usbmuxd //deb 系发行版#pacman -Sy usbmuxd //arch 系发行版#dnf install usbmuxd //多数 rpm 系发行版
安装完成后运行 jitterbugpair。
#/path/to/jitterbugpair
完成生成配对文件后,将配对文件传输到 iPhone/iPad:
- Windows 可以通过 iTunes、爱思助手传输。
- macOS 可以通过隔空投送、iTunes 传输。
- Linux 可以通过局域网 FTP 传输。
导入配对文件
正确在 iPhone/iPad 安装Jitterbug后,启动它。
点击 “配对文件” 选项。
点击右上角 “添加”,并选择传输到iPhone/iPad的 “*.mobiledevicepairing"配对文件。
导入开发者镜像
开发者镜像可以从 Github 或 iSign QQ 用户群下载。
Github链接:Xcode Developer Disk Images
将下载的 ZIP 压缩文件解压,得到“DeveloperDiskImage.dmg” 和 “DeveloperDiskImage.dmg.signature”
点击“支持文件”选项,导入 DeveloperDiskImage.dmg。
启动UTM
在“启动器“选项中,选择自己的设备。
完成后,在 APP 列表中点击UTM,即可正确启动 UTM。
可能会遇到的问题
Jitterbugpair 生成配对文件
1.提示 :“No device found ."
确保满足以下条件:
- USB 线缆正常。
- Windows 系统下确保正确安装iTunes,且能够正确识别 iPhone/iPad 的信息。
- iOS 处于亮屏已解锁状态。
2.提示 “ERROR: You must set up a passcode to enable wireless pairing.”
确保满足以下条件:
Jitterbug App 运行
1.无法链接到被调试设备
确保满足以下条件:
- iOS 设备已连接 WIFI。
- 设备名称不可以有 Emoji、中文表情或其他特殊符号。
- 导入的配对文件是连接该设备生成的。 表现为配对文件名称内的 UUID 与本机 UUID 保持一致。
- 导入的配对文件未被额外修改,使用iTunes 或 AirDrop 传输。
- “设置” App 中显示的当前勾选的 VPN 配置文件是 Jitterbug ,若 Jitterbug 仍然提示这个问题,请尝试重新安装 Jitterbug,并重新生成配对文件。
2.无法导入开发者镜像
确保满足以下条件:
- Developer Image 必须解压至 "我的iPhone" 或 “我的iPad”路径下,不可位于其他 App 文件夹内或 iCloud 云盘中。
3.提示 “ImageMountFailed” 或“无法挂载镜像。”
确保以下事项:
- 导入的开发者镜像文件与设备的 iOS 版本相匹配。
- Jitterbug 自上次使用后需要重新开启
需要使用多任务界面手动关闭 Jitterbug。
AltJIT 启动 UTM
需要确保 AltServer 及 AltStore 即为 Beta 版,Beta 版并不公开,获取方式是通过订阅 AltStore 项目。Patreon 订阅链接:AltStore
iOS12.2~iOS14.5
确保 AltStore端 与AltServer端保持连接状态。
点击 AltServer 在 Windows 状态栏或 macOS Finder中的图标,点击 Enable JIT。
在 AltStore 中完成 UTM 签名后长按 UTM APP,点击 “Enable JIT”,等待启动 UTM 即可。
iOS14.6+
由于 AltServer 不包含 iOS14.6+ 的开发者镜像,启动时会出现 “The server name of address could not be resolved“ 的报错。
对于这个问题的解决方法是通过 libimobiledevice 手动挂载开发者镜像。
Windows:
- 连接 iPhone/iPad 设备并确保 iTunes可以正确识别设备信息。
- 下载 libimobiledevice
libimobiledevice-win32项目提供了 Windows、macOS 版本及 nupkg 包。
项目链接:Github/libimobiledevice-win32
- 解压 ZIP 文件将下载的 ZIP 压缩文件解压,得到 “idevice_id.exe”、“ideviceimagemounter.exe”和“idevicedebug.exe”。
- 打开 “CMD”,将 “idevice _id.exe” 拖入 “CMD” 窗口,回车运行,运行成功后会返回连接的 iOS 设备的UUID。
- 下载开发者镜像,Github 下载链接:Xcode Developer Disk Images
注意下载对应 iOS 版本的或接近的开发者镜像将下载的 ZIP 压缩包解压,得到 DeveloperDiskImage.dmg 和 DeveloperDiskImage.dmg.signature
- 挂载开发者镜像 保持 iPhone处于亮屏已解锁状态,将 “ideviceimagemounter.exe” 拖入 “CMD” 窗口快速输入绝对路径,再将解压得到的 ”DeveloperDiskImage.dmg“ 拖入 ”CMD“ 窗口,回车运行。 返回 ”Status: Complete“ 即为成功。
- 开启JIT 保持连接,接下来在 AltServer 或 AltStore,选择 UTM,点击 Enable JIT 即可。
JitterbugLite 启动 UTM
JitterbugLite,即为没有 VPN 模拟 Xcode 调试的 Jitterbug 版本。
使用 JitterbugLite 需要一台辅助设备,来为需要启动 UTM 的设备进行调试。
JitterbugLite 使用方式与 Jitterbug 基本保持一致,可以按照上文的 “Jitterbug 使用和启动 UTM“ 进行操作,主要有以下:
- 需要将 JitterbugLite 安装到辅助设备上,且两台设备必须在同一局域网内。
- 配对文件生成依然是生成需要启动 UTM 的设备的。
UTM/UTM SE 使用
这里以 iOS UTM 示例,macOS UTM选项与其保持一致。
虚拟机设置
这里以 iOS14+ 的新 UI 操作作为教程,UTM2.0-UTM3.1.5+ 保持一致
进入 UTM ,点击新建虚拟机。
保证虚拟机内操作系统的正常运行,一般只需要设置 “系统”、“驱动器”、“显示”、“网络”。
“系统” 选项
- “架构” 选项:通常默认保持 x86_64即可。
- “系统” 选项:
对于 x86 虚拟机,有 Q35 和 i440FX 可选,i440FX 机型是QEMU一直以来使用的模拟机型,其效率不如 2009 年新生的 Intel Q35 机型,
支持的特性也已经十分落后。
以下是对于常见操作系统的选择:
对于Windows7 及以下操作系统系统,使用 i440FX(pc)即可。
对于 Windows7 以上操作系统,使用 Q35(q35)即可。
对于运行着 Linux2.6.37 以上内核的 Linux 发行版,使用 Q35(q35)即可。
- “内存” 选项:通常设置为设备内存的 40%,设置比 40% 更高的值可能会引起内存不足导致 UTM 虚拟机运行不稳定及崩溃。
- “高级设置”(UTM2.0-UTM3.1.2):UTM2.2.4 更新后,UTM 正式引入 UEFI 启动,且默认是开启的。
大多数完成安装后的镜像,一般都是 MBR+Legacy Boot 引导方式,开启 UEFI 后会导致虚拟机卡在 UEFI Shell 而无法继续。
部分对于 QEMU 制作的镜像是支持使用 UEFI 引导的,通常作者会单独说明。
安装 Windows 8及以上的原版镜像,可以开启 UEFI 支持。
UTM 3.1.4 更新将高级设置转移到了 “QEMU设置” 选项中。- CPU 型号:通常只需要保持默认 “Default” 即可。
- CPU 核心数:
- 对于 i386/X86_64 虚拟机,通常只需要设置为 “1” 。由于 i386/X86_64 不支持在 ARM 平台进行多核虚拟化,设置更多的核心只会在主机的一个 CPU 核心进行模拟,更多的虚拟核心可能会严重影响虚拟机单核性能。
- 对于 ARM32/ARM64 虚拟机,则可以设置更多核心,开启强制多核。
- 强制多核(MTTCG):
- 对于 i386/x86_64 虚拟机,开启该选项可能不会得到实际效果,还可能导致性能发挥不稳定。
- 对于 ARM32/ARM64 虚拟机,设置多个虚拟核心并开启该选项可以获得更好的性能。
- “JIT 缓存” 选项:通常这个选项对虚拟机的实际运行性能影响不明显,默认为虚拟机内存的 1/4,一般情况保持默认即可。
“驱动器” 选项
在 UTM 3.0.0 更新中,UTM 支持使用外置存储。
开始设置”驱动器“,首先需要准备已安装完成的虚拟机镜像或安装镜像。
如果没有任何可用的镜像,可以通过在 UTM库 内下载已完成安装的 “UTM 虚拟机文件“,也可以下载这里提供的镜像库。
- UTM 库:UTM GALLERY
- 百度网盘镜像库 (来源于 @一份礼物呵呵 ):百度网盘连接,提取码 :1234
驱动器的创建可以是导入或创建新虚拟磁盘。
导入镜像
点击驱动器右上角的
选项,接下来在文件 “APP“ 中,选择导入到镜像即可。
虚拟机镜像格式繁多,如果不知道下载的镜像应该如何设置,可以看下面列出的一些常见镜像的设置。
- 驱动器类型 DISK :qcow2、qed、img、vhd、vhdx、dmg、vmdk以及类似 XBZJ 等自命名镜像
- 驱动器类型 CD/DVD :iso、cdr
- 可移动驱动器:开启后可以在虚拟机运行时进行热插拔。
- 格式:即镜像的对应设备类型,可以按照上面的例子进行设置。
- 接口:
- 对于 Windows 操作系统,通常只需要保持 IDE 即可,确保系统含有相应驱动,可以设置为 SCSI、Nvme 及 VirtIO。
- 对于 Linux 操作系统,如果发行版使用的内核含有 VirtIO 支持,建议使用 VirtIO。
创建新虚拟磁盘
点击右上角 “+” ,创建新虚拟磁盘。
- 可移动:开启后可以在虚拟机运行时进行热插拔。
- 接口:通常保持 IDE ,其他选项需要确保虚拟机操作系统含有相应驱动程序支持。
- 大小:自行按照需求设置。
若新建的虚拟磁盘为 QCOW2 格式,其不会立即占用设备空间,而是根据虚拟机内使用量缓慢增加占用。
驱动器顺序
驱动器的顺序至关重要,错误的顺序会导致 QEMU 无法找到可引导设备,需要将可引导设备放置驱动器第一位。
“QEMU” 选项
- 调试日志记录:对于 UTM 出现的 BUG,可以开启该选项,导出发至 UTM Github 项目反应。
- UEFI 启动:
UTM2.2.4 更新后,UTM 正式引入 UEFI 启动,
且默认是开启的。
大多数完成安装后的镜像,一般都是 MBR+Legacy Boot 引导方式,开启 UEFI 后会导致虚拟机卡在 UEFI Shell 而无法继续。
部分对于 QEMU 制作的镜像是支持使用 UEFI 引导的,通常作者会单独说明。
安装 Windows 8及以上的原版镜像,可以开启 UEFI 支持。
对于 UTM3.1.4 之前的版本,UEFI 启动选项在 “系统>高级设置” 中。- 使用本地时间作为基础时钟:开启后能够解决部分 Linux 发行版在 UTM 运行中的时间错误。
- QEMU 属性:此选项中参数将添加至 QEMU 启动命令的 “-machine” 后,用于添加类似 -vga qxl 的启动参数。
该选项可能会与 UTM 自动生成的启动参数冲突,一般不需要进行更改。- 强制使用 PS/2 控制器:用于解决虚拟机内操作系统不能使用默认的 USB 控制器操作,通常用于运行 Windwos XP 及部分精简 Windows 镜像。
“显示” 选项
- 模拟显卡: QXL 系列:高性能虚拟显卡,仅支持 2D 加速,对于 Windows 8及以上和 Linux 操作系统可以发挥其性能。 VirtIO :半虚拟化显卡,在 UTM 上对于运行 Linux 虚拟机,支持进行 OpenGL 3D 加速,同时 UTM 提供持 Windows 10 及以上操作系统驱动程序,但并不支持 3D 加速。
UTM VirtIO Windows 下载链接:GitHub
- 对于 Windows 8及以上,建议使用 qxl-vga,并安装驱动。
- 对于 内核中含有 VirtIO 支持的 Linux 发行版,建议使用 virtio-gpu 系列。
只是维持虚拟机正常运行,只需要保持默认,
对于 virtio-gpu-pci 需要使用 UEFI 启动才能正确运行。
- 适应屏幕:即为拉伸虚拟机显示画面覆盖全屏。
- 视网膜模式:用于虚拟机内适应 iPhone/iPad 高分辨率,该选项需要虚拟机正确安装 SPICE Tools 才可以生效。
“网络” 选项
RTL8139:小螃蟹 100Mbps 网卡。
E1000:Intel 系列 1000Mbps 网卡。
VirtIO:半虚拟化网卡,支持10Gbps以上速率,性能最佳。
- 对于 Windwos 7以上的原版 Windows 系统,Intel e1000 虚拟网卡通常是免驱的,Windows 系统通常使用 RTL8139、E1000 虚拟网卡即可。
- 对于使用带 VirtIO 支持内核的 Linux 发行版,使用 VirtIO 虚拟网卡即可。
Windwos E1000 网卡驱动:微云分享,分享码:b756a7
“共享” 选项
该选项需要虚拟机内正确安装 SPICE Tools。- 共享目录:开启后,宿主机可以选择 “文件” APP 内本机文件夹作为共享目录,在虚拟机内通过 WebDav 的方式共享文件。
该选项需要虚拟机内正确安装 SPICE WebDavd,在虚拟机内访问 “https://localhost:9843" 即可。共享目录教程:https://zhuanlan.zhihu.com/p/511763274
UTM问题排错
你的iOS版本不支持无越狱运行UTM
原因: UTM 未拥有 JIT 权限,通常是未使用 AltJIT、Jitterbug 等工具或未能正确开启 JIT 权限。
解决方案:
- 按照本文章 “iOS UTM 标准版启动”解决该问题。
- 使用更慢的UTM SE。
Cannot find AltServer for JIT
使用 AltStore(1.5b2+)和AltServer(1.5b8+)安装UTM(2.4.1+)会自动触发AltJIT 集成的 AltKit。
原因:AltJIT 未能正确开启 JIT 权限或未使用工具授予 UTM JIT 权限
解决方法:
- 按照本文章 “iOS UTM 标准版启动”解决该问题。
- 使用更慢的UTM SE。
AltJIT Error:未能完成此操作
原因:
- 使用 AltServer 的 AltJIT 需要订阅 AltStore 的 Patreon订阅 :AltStore
- iOS 版本为 iOS14.6+ ,且未按照本文章 “iOS UTM 标准版启动 > AltJIT 启动 UTM > iOS14.6+" 中内容进行操作。
解决方法:
- 付费订阅 AltStore 项目。
- 按照本文章 “iOS UTM 标准版启动 > AltJIT 启动 UTM > iOS14.6+" 继续。
UTM 和 Jitterbug 无法导入文件
Jitterbug仅在尝试 “iOS UTM 标准版启动 > Jitterbug 使用和启动 UTM > 已知问题” 中所以解决方法无用时,在尝试按以下解决办法继续。这个问题主要表现为在导入时,点击任何文件都没有反应
原因:
- 签名后安装的 ipa 的 AppID 和 provisioning profile 的 AppID 不同导致的,这通常是使用共享证书+通用provisioning profile签名导致。
- 未能使用正确的签名方式签名。
解决方法:
- 联系你的共享证书商家提出问题
- UTM(SE)使用免费开发者自签
出现UEFI Shell(无法启动)
原因:使用的镜像不支持 UEFI 或未能正确设置驱动器。
解决方法:
- 使用支持 UEFI 的镜像。
- UTM3.1.4 以下,在“系统 > 高级设置”关闭UEFI Boot。
- UTM 3.1.5 以上,在“QEMU”选项中关闭 UEFI Boot.
- iOS11-13,由于 UEFI Boot 选项仅存在于 iOS14+ 的新 UI 中,需要降级到 UTM 2.1.2 或升级到 UTM 3.1.5。
启动虚拟机进入UEFI界面(无法启动)
问题:使用的镜像不支持 UEFI 或未能正确设置驱动器。
解决方法:
- 使用支持 UEFI 的镜像。
- UTM3.1.4 以下,在“系统 > 高级设置”关闭UEFI Boot。
- UTM 3.1.5 以上,在“QEMU”选项中关闭 UEFI Boot.
- iOS11-13,由于 UEFI Boot 选项仅存在于 iOS14+ 的新 UI 中,需要降级到 UTM 2.1.2 或升级到 UTM 3.1.5。
- 按照 “UTM/UTM SE 使用 > ‘驱动器’ 选项“ 重新设置驱动器。
No Bootable device(无法启动)
原因:驱动器没有被正确配置
解决方法:
- 按照 “ UTM/UTM SE使用 > ‘驱动器’选项 ” 重新设置驱动器。
- 确保驱动器可用且为可引导设备。
- UEFI 镜像开启 UEFI Boot 选项。
虚拟机启动后鼠标键盘无法输入
原因:对于一些老系统或精简过猛的系统,可能会不兼容 UTM 默认使用的 USB 设备。
解决方案:
- UTM 3.1.4 以下在 "输入 "选项中开启 "输入(PS/2)模式"
- UTM 3.1.4 以上在 “QEMU“ 选项开启 “强制使用 PS/2 控制器“
Cannot allocate memoy(无法开启虚拟机)
原因:虚拟机设置的内存过大,超出iOS限制。
解决方法:在“系统"将内存减少,设置为本机内存的30%~40%。
Bus 'ide.0' not found
原因:这是UTM2.0.x带来的新问题,只能使用一个IDE驱动器。
解决方案:通过升级UTM3.0.0以上或降级UTM1.0解决。
启动虚拟机黑屏
原因:
- UTM 使用企业证书签名导致。
- UTM 没有 JIT权限。
- 使用为 p12 格式的开发者证书和部分“超级签”平台,启动虚拟机会黑屏。
解决方案:
- 使用 AltStore 签名或在线开发者签名。
- 按照本文章 “iOS UTM 标准版启动 > AltJIT 启动 UTM > iOS14.6+" 继续。
- 使用更慢的 UTM SE。
启动虚拟机蓝屏
原因:对于老 Windows 以及精简 Windows ,不支持使用 Q35 机型。
解决方法:在 “UTM 设置 > 系统 > 系统” 中将 Q35 更改为 i440FX 。
原因:系统不含 AHCI / Nvme 驱动,或更换了驱动器的接口。
解决方法:
- 将驱动器接口改为 “iDE”。
- 尝试更换为镜像原接口。
- 0x00000050 或 Page fault in nonpaged area
原因:通常是由于 UTM2.2.0-UTM3.0的 QEMU6.1.0 后端的一个BUG。
解决方法:
- 在 “UTM 设置 > 系统 > 系统” 中将 Q35 更改为 i440FX。
- 升级至 UTM 3.0.0 及以上或降级至 UTM 2.1.2 及以下。
Linux虚拟机设备紫屏重启
原因:由于 iOS15 引入了导致 Kernel Panic 的 Kernel race,
每当使用 GL 设备,则会引起 Kernel Panic,导致设备出现紫屏现象,通常出现在运行 Linux 虚拟机。解决方案:在 “虚拟机设置 > ‘显示’ 选项” 中,切换不使用 GL 加速的虚拟显卡。
总的来说,UTM 虚拟机在 iOS 平台依然只是一个玩家们的玩具,“你的下一台电脑,何必是电脑” 仍未实现,我们依然无法在 iOS 平台进行更好的生产力活动。