开源项目 Husk 2.0 让iPhone 运行安卓游戏

IT时代网10月18日消息,开源项目 Husk 2.0 让iPhone 运行安卓游戏

独立开发者 Leviidev 近期公布 Husk 2.0 开源项目,利用自研翻译层,让部分安卓应用自带的 64 位原生代码能够直接在 iPhone 处理器上运行。该项目无需越狱 iPhone,支持 iOS 16 及以上系统,目前已兼容超过 150 款应用。此前本站曾报道过 开源项目实现 PS5 图形指令全覆盖,两者思路相近,都是在既有硬件上打通异构指令的翻译层。

Husk 与传统安卓模拟器实现路径不同。以 QEMU 等方案为例,传统模拟器通常需要模拟完整的安卓系统,包括启动系统、加载内核和运行系统服务。Husk 则通过翻译层绕过完整系统环境,将游戏的 DEX 文件及 .so 动态库加载到普通 iOS 应用进程中,再由自身提供游戏所需的安卓运行环境。

具体而言,Husk 会提供 C 函数库、游戏调用的 Java 接口,并通过 ANGLE 将 OpenGL ES 图形调用转换为适用于苹果平台的图形接口,同时借助 MoltenVK 实现 Vulkan 支持。此外该项目还处理了音频、触控和手柄输入等功能。由于兼容的原生代码能够直接在实体 CPU 上执行,因此不必承担完整系统模拟带来的额外开销,部分游戏可以在数秒内启动。

为实现上述功能,Husk 自行构建了一套安卓运行环境,包括编译为 iOS 版本的安卓运行时(ART)、将安卓 bionic 函数库接口映射至 iOS 系统层,以及自研的 .so 动态库加载器。

兼容性方面,Husk 2.0 支持 iOS 16 及以上版本,可导入 APK、XAPK、APKM 和 APKS 格式的安装包,也能处理谷歌 Play 商店使用的分割安装包。项目支持 Unity、Unreal Engine 4、Godot 3 和 Godot 4 等游戏引擎,同时兼容 cocos2d-x、SDL2 和 SDL3,甚至能够运行经典游戏《GTA:圣安地列斯》。

不过免越狱安装并不意味着过程简单。Husk 依赖即时编译(JIT)功能,而 iOS 对 JIT 权限有严格限制,通常需要通过调试器等方式授予。启用相应功能后,需要通过侧载方式部署 Husk,且目前 Husk 一次只能运行一款应用,切换游戏时需要完全关闭并重新启动,本身具有一定门槛,较适合爱好者尝鲜体验。

注:本文配图由AI生成。本文综合自IT之家等,文中包含AI辅助创作的内容。

编辑:陈帅

THE END