Перейти к содержанию

Klepton: запуск Android ARM64 VR APK на Apple Vision Pro

7.0/10

Проект Klepton — это открытая попытка запускать Android ARM64 VR-приложения в формате APK на Apple Vision Pro. Работа относится к низкоуровневой совместимости и эмуляции, поскольку платформа Apple Vision Pro изначально не предназначена для выполнения Android-пакетов. В обсуждении отмечаются технические детали, включая обработку регистра x18, который в Darwin обнуляется при возврате из исключений и прерываний таймера. Это означает, что приложение для Quest не может сохранять состояние в этом регистре даже в пределах одного окна планирования. Проект привлекает внимание как нишевый, но технически показательный пример переноса VR-среды Android на XR-платформу Apple.

Контекст

Klepton — это открытый проект для запуска Android ARM64 VR-приложений, в первую очередь APK для Quest, на Apple Vision Pro и macOS. Он использует подход без JIT: инструмент klepton-ld преобразует Android-библиотеки .so в загружаемые Apple-библиотеки .dylib и .framework, которые затем связываются со средой выполнения Klepton. Это важно, потому что visionOS обычно ограничивает запуск стороннего нативного кода и JIT-компиляцию, что делает перенос Android-приложений нестандартной задачей на уровне релокации и совместимости.

Влияние

Klepton позволяет запускать Android ARM64 VR-приложения на Apple Vision Pro без JIT-компиляции, расширяя доступный VR-контент на платформе Apple. Это открывает новые возможности для разработчиков и пользователей, но решение остаётся нишевым и технически сложным.

Обсуждение сообщества

Комментаторы называют проект впечатляющим примером «возни» с платформой и критикуют Apple за ограничения iPadOS и visionOS, сравнивая их с излишне закрытым подходом. Один участник указывает на конкретную проблему: в Darwin регистр x18 обнуляется при возврате из исключений и прерываний таймера, поэтому Quest-приложение не может хранить в нём состояние между квантами планирования. Также прозвучала просьба раскрыть использование LLM при разработке.

Проверка фактов

Утверждение о том, что Klepton представляет собой проект для запуска Android/Quest ARM64 VR APK на Apple Vision Pro, подтверждается репозиторием GitHub, где он описан как «JIT-less relinker and compatibility layer» для visionOS и macOS. Комментарий strong-self о том, что Darwin обнуляет регистр x18 при возврате из исключений и прерываний по таймеру, также подтверждается независимым обзором, который уточняет, что macOS обнуляет x18 при каждом переключении контекста, а Klepton патчит обращения к x18 через TLS. Утверждение о возможности запуска Android VR APK на Vision Pro в целом подтверждается, но сторонний источник называет решение «необходимым, но несовершенным», поэтому практическая совместимость не является полной.

Источники