Klepton: Chạy APK VR Android trên Apple Vision Pro mà không cần JIT
Một lớp tương thích mới dịch các ứng dụng VR ARM64 Android thành các tệp nhị phân Apple gốc, cho phép Beat Saber chạy trên Vision Pro và macOS — không cần JIT.

Klepton là một dự án mã nguồn mở mới nhằm chạy các ứng dụng VR ARM64 Android trên Apple Vision Pro và macOS. Nó thực hiện điều này bằng cách dịch các thư viện .so của Android thành các thư viện .dylib và .framework có thể tải được của Apple, sau đó liên kết vào runtime Klepton. Dự án hiện chỉ tập trung vào các ứng dụng Java-thin — không có ART, không có JVM.
Đối với đồ họa, GLES 3.2 được dịch sang ANGLE GLES 3.0 (với backend Metal) và Vulkan được dịch sang MoltenVK. Runtime cung cấp các triển khai lại của các thư viện hệ thống Android (bionic, NDK, JNI) và các hàm Oculus VR Platform (ovrp), tất cả được hỗ trợ bởi các framework Apple như ARKit, GameController và AVAudioEngine.
Một trong những phần khó nhất là xử lý thanh ghi x18. Cả Android và macOS đều dành riêng x18, nhưng nhiều ứng dụng Android cũ vẫn sử dụng nó, và macOS đặt nó về 0 khi chuyển ngữ cảnh. Klepton vá tất cả các sử dụng x18 để thay vào đó sử dụng các vị trí TLS riêng cho từng thư viện.
Klepton cũng có thể tải và vá các tệp .so tại runtime bằng mmap, nhưng điều này chỉ thực sự hữu ích trên macOS nơi JIT được cho phép. Một số ứng dụng sẽ yêu cầu JIT nếu chúng sử dụng runtime scripting như LuaJIT hoặc V8.
Hiện tại, Beat Saber hoạt động trên macOS và visionOS với các vấn đề đồ họa nhỏ. Steam VR Link và cải thiện tính tổng quát/công cụ xây dựng vẫn đang trong quá trình phát triển.
Chạy APK VR ARM64 Android trên Apple Vision Pro, không cần JIT!
Thảo luận
0 bình luận
Hãy là người đầu tiên thảo luận.