<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z" -->

---
title: Run Android ARM64 VR APKs on Apple Vision Pro | daily.dev
description: Klepton is an open-source JIT-less relinker and compatibility layer that enables Android ARM64 VR APKs (targeting Meta Quest and Android XR) to run on Apple...
canonical: https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Run Android ARM64 VR APKs on Apple Vision Pro | daily.dev
og:description: Klepton is an open-source JIT-less relinker and compatibility layer that enables Android ARM64 VR APKs (targeting Meta Quest and Android XR) to run on Apple...
og:url: https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z
og:image: https://api.daily.dev/og/posts/uc1EJFX9z.png
og:image:alt: Run Android ARM64 VR APKs on Apple Vision Pro
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Run Android ARM64 VR APKs on Apple Vision Pro

**[Hacker News](https://daily.dev/sources/hn)** · 2 min read · 0 upvotes · 0 comments

## Summary

Klepton is an open-source JIT-less relinker and compatibility layer that enables Android ARM64 VR APKs (targeting Meta Quest and Android XR) to run on Apple Vision Pro (visionOS) and macOS. It works by translating Android `.so` shared libraries into Apple `.dylib`/`.framework` binaries via a custom linker (`klepton-ld`), resolving imports against a Klepton runtime that reimplements Android NDK, Bionic libc, JNI, and OpenXR APIs. Graphics are handled by translating GLES 3.2 to ANGLE (Metal backend) and Vulkan to MoltenVK. The project currently focuses on Java-thin apps (no ART/JVM), patches x18 register usage for macOS compatibility, and has Beat Saber running on both macOS and visionOS with minor graphical issues.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://github.com/shinyquagsire23/Klepton>

## Questions this post answers

### How does Klepton run Android APKs on Apple Vision Pro without JIT?

Klepton uses a custom linker (`klepton-ld`) to translate Android `.so` libraries into Apple `.dylib`/`.framework` binaries, resolving their imports against a runtime that reimplements Android NDK, Bionic libc, JNI, and OpenXR APIs. GLES 3.2 is translated to ANGLE (with a Metal backend) and Vulkan to MoltenVK. The ARM64 instruction bytes are mostly left unmodified; only x18 register usage is patched to use per-library TLS slots instead.

_Developers building cross-platform XR or compatibility layer projects track work like Klepton on daily.dev._

### What Android APIs does Klepton reimplement for visionOS compatibility?

Klepton reimplements Bionic libc/libm/libdl/pthread/liblog (mapped to libSystem), NDK APIs including ALooper, ANativeWindow, ASensor, and AAsset, a synthetic JavaVM/JNIEnv for JNI, and ovrp_* OpenXR Platform APIs. It currently targets Java-thin applications only — no ART or JVM support is included.

_Engineers porting XR apps across platforms find relevant compatibility and runtime news on daily.dev._

## Community take

How the wider developer community reacted, aggregated from 1 discussion and 40 comments across hackernews (as of 2026-08-10).

**TL;DR:** The technical achievement of running Android VR APKs on Apple Vision Pro is acknowledged as impressive, but the thread quickly devolves into a lengthy debate about Apple's platform restrictions and user/developer hostility, with the project itself receiving relatively little focused discussion.

**Sentiment:** 30% positive · 40% mixed · 30% skeptical

**The case for**

- Getting Beat Saber running on visionOS is seen as a meaningful proof-of-concept that could expand the Vision Pro's usefulness.
- The x18 register patching approach is noted as technically interesting given Darwin's behavior of zeroing x18 on exception returns.

**The pushback**

- Apple's platform restrictions (no JIT, mandatory Mac for development, App Store gatekeeping) are seen as fundamental barriers that make projects like this necessary workarounds rather than supported paths.
- The Vision Pro's limited app ecosystem and high price are cited as reasons the device hasn't gained traction, and this compatibility layer may not change that.

**By community**

- hackernews (mixed): Commenters briefly praise the technical ingenuity but spend most of the thread debating Apple's walled-garden policies and developer hostility rather than the project's specifics.

**Hottest debate:** Whether Apple's platform restrictions constitute 'user hostility' or simply a deliberate product design choice that many customers actively prefer.

**Open questions**

- Will Apple take action against this compatibility layer, and can it survive long-term given visionOS restrictions?
- Could this approach be extended to support apps that rely on ART/JVM beyond the current Java-thin scope?
- Will Apple ever open the Vision Pro platform enough to make such workarounds unnecessary?

**Highlights**

> nice work! was reading kl_x18.h and darwin zeroes x18 on any exception return, timer interrupt included, so a quest app can't keep state there for even one scheduling window
> — [strong-self on hackernews](https://news.ycombinator.com/item?id=49241088)

> I would appreciate an LLM usage disclosure
> — [m132 on hackernews · 1 comments](https://news.ycombinator.com/item?id=49240071)

> I feel, like with the first Apple Watch generations, they will pivot with regard to the AVP, given people aren't exactly hellbent on buying those. Having had one for a few months of experimentation, opening the platform might be one way to go, especially with the recent leadership changes, but then again, maybe the specific form factor simply has no mainstream future given weight, size and social isolation. Would have kept mine, for what it's worth, if I could do dev work with Xcode, VSCode, etc. freely without needing to use a macbook alongside it, but am aware that I am a very unprofitable niche.
> — [Topfi on hackernews](https://news.ycombinator.com/item?id=49243192)

> This is incredible. Even though Apple seems hell-bent on repeating their iPad mistake on Vision Pro ("A baby computer because our users are morons and we have to keep them safe from any theoretical harm. Also, any kind of software development outside of macOS is strictly forbidden"), there is a small tinker community that works on genuinely making iPadOS useful. Another example (also shared here recently) is this: https://www.lispm.net/apps/uhf-x11/
> — [terhechte on hackernews · 1 comments](https://news.ycombinator.com/item?id=49240285)

**Source threads**

- [hackernews](https://news.ycombinator.com/item?id=49238818) · 131 points · 40 comments

## Similar posts on daily.dev

- [After it revolutionized PC gaming on Linux, Valve's new Lepton project may do the same for Android games](https://daily.dev/posts/after-it-revolutionized-pc-gaming-on-linux-valve-s-new-lepton-project-may-do-the-same-for-android-g-kwliwwqrg) · XDA Developers · 0 upvotes · 0 comments
- [Android virtualization](https://daily.dev/posts/android-virtualization-prpwdg7qo) · Quartex Pascal · 18 upvotes · 1 comments
- [LunarG Releases Vulkan SDK 1.4.335.0](https://daily.dev/posts/lunarg-releases-vulkan-sdk-1-4-335-0-qnvkv93k0) · Khronos · 1 upvotes · 0 comments

---

Tags: [#android](https://daily.dev/tags/android), [#c](https://daily.dev/tags/c), [#vulkan](https://daily.dev/tags/vulkan), [#visionos](https://daily.dev/tags/visionos)

[View this post on daily.dev](https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Run Android ARM64 VR APKs on Apple Vision Pro","url":"https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z"},"datePublished":"2026-08-10T08:12:08.733Z","dateModified":"2026-08-10T14:28:23.445Z","description":"Klepton is an open-source JIT-less relinker and compatibility layer that enables Android ARM64 VR APKs (targeting Meta Quest and Android XR) to run on Apple...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8dd4e65faed986cfc00df09d4b91c88f?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/8dd4e65faed986cfc00df09d4b91c88f?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Hacker News","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Hacker News","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/hn","url":"https://daily.dev/sources/hn"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"android,c,vulkan,visionos","timeRequired":"PT2M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Hacker News","item":"https://daily.dev/sources/hn"},{"@type":"ListItem","position":3,"name":"Run Android ARM64 VR APKs on Apple Vision Pro"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/run-android-arm64-vr-apks-on-apple-vision-pro-uc1ejfx9z#faq","mainEntity":[{"@type":"Question","name":"How does Klepton run Android APKs on Apple Vision Pro without JIT?","acceptedAnswer":{"@type":"Answer","text":"Klepton uses a custom linker (`klepton-ld`) to translate Android `.so` libraries into Apple `.dylib`/`.framework` binaries, resolving their imports against a runtime that reimplements Android NDK, Bionic libc, JNI, and OpenXR APIs. GLES 3.2 is translated to ANGLE (with a Metal backend) and Vulkan to MoltenVK. The ARM64 instruction bytes are mostly left unmodified; only x18 register usage is patched to use per-library TLS slots instead. Developers building cross-platform XR or compatibility layer projects track work like Klepton on daily.dev."}},{"@type":"Question","name":"What Android APIs does Klepton reimplement for visionOS compatibility?","acceptedAnswer":{"@type":"Answer","text":"Klepton reimplements Bionic libc/libm/libdl/pthread/liblog (mapped to libSystem), NDK APIs including ALooper, ANativeWindow, ASensor, and AAsset, a synthetic JavaVM/JNIEnv for JNI, and ovrp_* OpenXR Platform APIs. It currently targets Java-thin applications only — no ART or JVM support is included. Engineers porting XR apps across platforms find relevant compatibility and runtime news on daily.dev."}}]}
```

