Mac.apk runs Android apps natively on Apple Silicon without a VM
The tool translates bytecode and runs ARM64 binaries directly on macOS. While games like Minecraft work, auth breakages and a closed-source core temper early alpha excitement.
Developer Kaleb Simpson has released a public alpha of Mac.apk, a compatibility layer designed to run Android software on Apple Silicon Macs without an emulator, a virtual machine, or a Linux kernel.
Instead of simulating an entire mobile operating system, the tool wraps an APK file into a standard macOS .app bundle that lives in the Applications folder. Mouse clicks translate to screen touches, window orientation flips via ⌘+R, and gamepads work out of the box.
Under the hood, Mac.apk handles Android executables at two levels. Java and Kotlin code stored in DEX format is converted into standard Java bytecode and executed on an embedded OpenJDK runtime. Native 64-bit ARM libraries execute directly on the host processor with zero instruction translation, while older 32-bit ARM code is pre-recompiled to 64-bit and cached. Graphics pipelines route through Metal: OpenGL ES calls pass through ANGLE, and Vulkan traffic flows via MoltenVK.
The runtime integrates platform services directly with macOS for windows, audio, and clipboard synchronization. According to the project's compatibility list, several offline or self-contained applications run cleanly, including Telegram, Signal, Organic Maps, VLC, Minecraft, and Among Us.
Substantial limitations remain. Rendering glitches pop up in titles like Rocket League Sideswipe, and services requiring proprietary mobile frameworks struggle—Duolingo, for instance, cannot handle account logins. While Simpson open-sourced the underlying bytecode converter, dex2jvm, on GitHub, the primary Mac.apk runtime remains closed-source.
Source: habr
Comments
Help shape the next version: Add context or suggest a correction. AI review can add points toward a rewrite. Reviews and updates may take time; a full meter does not guarantee a new version.