返回

文章详情

在 Apple Vision Pro 上运行 Android ARM64 VR APK

Hacker News2026年8月10日 03:12

在 Apple Vision Pro 上运行 Android ARM64 VR APK,无需 JIT!架构 klepton-ld 将 Android .so 库转换为可加载的 Apple .dylib 和 .framework 库,然后链接到 Klepton 运行时。Klepton 目前仅专注于 Java 薄应用程序(没有 ART,也没有 JVM)。在图形方面,GLES 3.2 被转换为供应的 ANGLE GLES 3.0(配有 Metal 后端),Vulkan 则转化为 MoltenVK。┌─────────────────────────────────────────────────────────────────┐ │ GUEST(翻译的 Mach-O,指令字节大部分未修改) │ │ libil2cpp · libunity · libunityopus · libmain · burst · ... │ └─────────────────────────────────────────────────────────────────┘ ↕ 导入解析到 Klepton 运行时的 `klepton-ld` ┌─────────────────────────────────────────────────────────────────┐ │ libklepton_bionic libc/libm/libdl/pthread/liblog → libSystem │ │ libklepton_ndk ALooper · ANativeWindow · ASensor · AAsset │ │ libklepton_jni 合成 JavaVM / JNIEnv │ │ libklepton_ovrp ovrp_* 重新实现 │ │ ... │ └─────────────────────────────────────────────────────────────────┘ ↕ 前端平台(`mains`)和 OS 特性 ┌─────────────────────────────────────────────────────────────────┐ │ MoltenVK(Vulkan → Metal) ANGLE(GLES 3.0) │ │ 合成服务 · ARKit · 游戏控制器 · AVAudioEngine │ └─────────────────────────────────────────────────────────────────┘ 尽管 Android 和 macOS 都保留 x18,但一些(很多)旧的 Android 应用程序仍然使用 x18,而 macOS 在上下文切换时将 x18 置零。所有对 x18 的使用都由 klepton-ld 修补,以便改用每个库的 TLS 插槽。Klepton 还能够在运行时使用 mmap 加载和修补 .so 文件,但这在 macOS 上真正有用,因为那里可以实际使用 JIT。很可能一些应用程序会要求 JIT,如果它们恰好利用期望 JIT 的脚本运行时(LuaJIT、V8 等)。构建 请查看 BUILDING.md 以获取完整指导。简短版本:brew install pkg-config sdl3 apktool # 主机依赖项 apktool d -f -o beatsaber beatsaber.apk # 您提供 APK;参见 BUILDING.md make check # 完整回归测试 快速运行脚本:./build_run_viewer.sh # 构建并运行 macOS Beat Saber 前端 ./build_run_vpro.sh # 构建并运行 Vision Pro Beat Saber 前端 ./build_run_slink.sh --shell --view # macOS Steam VR Link 前端(进行中) 状态 Beat Saber 在 macOS 和 visionOS 上运作正常,存在一些轻微的图形问题,Steam VR Link 和提高通用性/构建工具仍在进行中。

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡