# iOS 与 "JIT"

# 什么是 JIT?为什么需要关注它?

JIT 全称为即时编译(虽然并非 Java 专属),它通过运行时编译核心指令(而非重复编译全部代码或使用移植性较差的硬件级格式编写),从而以更高效的方式执行 Java 代码。这是在移动设备上运行《我的世界:Java 版》的最快™方式,对于获得更流畅的游戏体验至关重要。

在苹果移动平台(本文指 iOS、iPadOS 及即将支持的 tvOS*)中,一项名为代码签名的安全功能深度集成于操作系统。该功能用于验证应用在用户安装后是否被篡改,防止恶意用户(如黑客)事后植入恶意代码。但由于代码签名的工作原理,JIT 无法正常运作——因为 JIT 需要读取代码、修改代码并以某种方式执行(无论是将代码复制到内存新位置、直接执行还是映射执行)。

(*) - tvOS 支持即将上线!

# 这对 PojavLauncher 意味着什么?

# 已越狱设备

越狱设备用户无需担心 JIT 问题,因为 PojavLauncher 专为检测越狱环境设计,可自动启用 JIT。

# 未越狱设备

未越狱设备用户根据安装 PojavLauncher 的方式会出现两种不同情况。

# 通过 TrollStore 安装

若使用 TrollStore 安装 PojavLauncher,好消息是:应用可利用 TrollStore 授予的扩展权限,在启动时自动启用 JIT。(需开启 URL Schemes)

# 常规侧载安装

若通过常规方式侧载,则需要手动启用 JIT。最常用的方法是在应用运行时连接调试服务器——AltStore、SideStore、StikDebug、SideJITServer 和 Jitterbug 均采用此方式启用 JIT。

这种方法的唯一缺点是通常需要连接 Wi-Fi 网络才能启用 JIT。

# 有哪些启用 JIT 的方法?

各 iOS 版本启用 JIT 的方法可在此查看 (opens new window)

未列出的方法未经我们确认,也不建议用于 PojavLauncher。

# 如何启用 JIT?

(!) - 仅限越狱设备(JIT 由越狱环境直接授予)

(@) - 仅限存在 CoreTrust 漏洞的设备(iOS 14.0 - iOS 16.7 RC 及 iOS 17.0)

(#) - AltJIT 在 iOS 17.0.1+ 测试版中仅支持 macOS,需使用 pymobiledevice3

($) - 不适用于 iOS 17.0.1+,该类系统需通过 pymobiledevice3 启用 JIT

(%) - 不适用于 iOS 16.x 及更低版本,请使用其他列出的方法。此方案专为 iOS 17.0.1+ 设计

(^) - 仅支持 iOS 17.4+

# 即将推出的方案:

  • UTM SE (^)