独立开发者 Leviidev 近期推出了 Husk 2.0 这一开源项目,它通过自研的翻译层,使部分 Android 应用中的 64 位原生代码能在 iPhone 处理器上直接运行。该项目无需对 iPhone 进行越狱,支持 iOS 16 及更高版本,目前已兼容超过 150 款应用。
与传统的 Android 模拟器不同,Husk 2.0 并不需要模拟完整的 Android 系统。例如,QEMU 这类方案通常要启动系统、加载内核并运行系统服务。而 Husk 借助翻译层绕过了完整的系统环境,将游戏的 DEX 文件及 .so 动态库加载到普通 iOS 应用进程中,再由自身提供游戏所需的 Android 运行环境。
具体来说,Husk 会提供 C 函数库和游戏调用的 Java 接口,并通过 ANGLE 将 OpenGL ES 图形调用转换为适用于苹果平台的图形接口,同时利用 MoltenVK 实现 Vulkan 支持。此外,该项目还处理了音频、触控和手柄输入等功能。由于兼容的原生代码能在实体 CPU 上直接执行,因此无需承受完整系统模拟带来的额外开销,部分游戏可在数秒内启动。
为了实现上述功能,Husk 自行构建了一套 Android 运行环境,包括编译为 iOS 版本的 Android Runtime(ART)、将 Android bionic 函数库接口映射至 iOS 系统层,以及自研的 .so 动态库加载器。通过这些组件,Husk 在 iOS 应用与 Android 软件之间建立了一层兼容环境。在兼容性方面,Husk 2.0 支持 iOS 16 及以上版本,可导入 APK、XAPK、APKM 和 APKS 格式的安装包,也能处理 Google Play 商店使用的分割安装包。项目支持 Unity、Unreal Engine 4、Godot 3 和 Godot 4 等游戏引擎,同时兼容 cocos2d-x、SDL2 和 SDL3,甚至能运行经典游戏《GTA:圣安地列斯》。
不过,“免越狱”安装并不意味着过程简单。Husk 依赖即时编译(JIT)功能,而 iOS 对 JIT 权限有严格限制,通常需要通过调试器等方式授予。在用户成功启用相应功能后,需要通过侧载方式部署 Husk,同时目前 Husk 一次只能运行一款应用,用户切换游戏时需要完全关闭并重新启动 Husk,本身具有一定门槛,仅适合爱好者尝鲜体验。九游体育的用户如需尝试,可参考 GitHub 项目地址(https://github.com/Leviidev/Husk)。