Apple Vision Pro에서 Android ARM64 VR APK 실행하기

5 hours ago 2

Klepton은 JIT 없이 Android ARM64 VR APK를 Apple Vision Pro와 macOS에서 실행하는 런타임으로, 현재 Java 의존성이 얕은 애플리케이션에 집중함 klepton-ld가 Android .so를 Apple의 .dylib·.framework로 변환하고, Bionic·NDK·JNI·OVRP 호환 계층을 Klepton 런타임에 연결함 그래픽은 GLES 3.2를 ANGLE GLES 3.0, Vulkan을 MoltenVK로 변환해 Metal 백엔드에서 처리하며, visionOS 기능은 Compositor Services·ARKit 등과 연동함 macOS가 문맥 전환 시 x18을 0으로 만드는 문제를 피하기 위해 klepton-ld가 모든 x18 사용을 라이브러리별 TLS 슬롯으로 패치함 Beat Saber는 macOS와 visionOS에서 사소한 그래픽 문제와 함께 작동하지만, Steam VR Link와 범용성·빌드 도구 개선은 아직 개발 중이며 LuaJIT·V8 기반 앱은 JIT가 필요할 수 있음 변환 및 실행 구조 klepton-ld 는 Android .so 라이브러리를 Apple 플랫폼에서 로드할 수 있는 .dylib와 .framework로 변환한 뒤 Klepton 런타임에 연결함 게스트 코드는 변환된 Mach-O로 실행되며, 명령어 바이트는 대부분 수정되지 않음 대상 라이브러리에는 libil2cpp, libunity, libunityopus, libmain, burst 등이 포함됨 가져오기 심볼은 klepton-ld에서 Klepton 런타임으로 연결됨 현재 ART와 JVM을 제공하지 않으며, Java 계층 의존성이 얕은 애플리케이션만 중점적으로 지원함 Android 호환 계층 런타임은 Android API를 Apple 플랫폼 구성요소로 연결하는 여러 라이브러리로 구성됨 libklepton_bionic: libc, libm, libdl, pthread, liblog를 libSystem에 연결함 libklepton_ndk: ALooper, ANativeWindow, ASensor, AAsset을 지원함 libklepton_jni: 합성 JavaVM·JNIEnv 환경을 제공함 libklepton_ovrp: ovrp_* 함수를 재구현함 그래픽과 Apple 플랫폼 연동 GLES 3.2 호출은 프로젝트에 포함된 ANGLE GLES 3.0과 Metal 백엔드로 변환됨 Vulkan 호출은 M...

Read Entire Article