This runtime is part of MacLauncher, which installs and runs Android games on Apple Silicon Macs with per-game storage, accounts and settings. The MacLauncher website describes its features, and the app is on the MacLauncher releases page.
MacLauncher Android contains the Android and VR/XR runtime components that MacLauncher uses on Apple Silicon Macs. Android application code runs on a Java 21 JVM or on ART, with shared Android framework services and native macOS graphics, audio and input.
This repository holds the runtime source, the exact upstream commit of each dependency and MacLauncher's adaptations. MacLauncher Builds builds the common (JVM) and ART runtime packages from it and publishes them. MacLauncher itself handles installation, version selection, accounts and game settings.
The main MacLauncher repository describes features and usage. Building, the source and runtime reference, the Android runtime architecture and Android native code describe the build inputs and how the runtime fits together.
The runtime combines established Android execution and native integration projects, which share one set of application services:
- dex2jvm converts application DEX bytecode for JVM execution; Mac.apk also uses it. The ART binding runs the original DEX on AIM's port of the Android Runtime, with its matching Android framework and native libraries.
- Robolectric supplies the executable
android-allframework and compatible native components. Its test runner and shadow services are not part of the application runtime. - Klepton supplies native Android library loading, ABI adaptation and VR/XR integration. Native libraries use the real JVM or ART for Java objects, callbacks and JNI registration.
Every Android framework class, member and resource of the selected framework version and ABI stays present. Platform adaptations connect the framework's operating-system dependencies to shared native implementations, and both execution bindings manage surfaces, images, windows, audio and application operations through those same implementations.
The runtime is built for games: each game has private writable storage and sees only the files explicitly imported into it, and network, clipboard, device and account access each follow their own policy. OpenXR and OVRPlugin entry points share the native graphics and input implementation with ordinary Android applications.
microG supplies optional Google Play services integration. MacLauncher handles account selection and authorization, and game processes receive scoped replies without access to the launcher's account store.
The ART binding loads its matching framework, libcore and boot image into an application host process. This repository also holds the integration for MacLauncher's optional standalone AIM runtime, which boots an Android services guest and uses a separately downloaded Android system image. Mac.apk, MacLauncher's other optional Android runtime, comes from its publisher and is not built from this repository.