Meta ports the Cuttlefish Android virtual-device framework to Apple silicon Macs
Meta's Reality Labs ported Cuttlefish, the AOSP virtual-device framework, to macOS and Apple silicon. The work touches QEMU's vhost-user path, HVF memory tracking, the native Cocoa display, and build and signing. It ships as a QEMU fork and a patch set.
Meta brings Cuttlefish to Apple silicon Macs
On November 13, 2026, Meta's engineering blog described how Reality Labs ported Cuttlefish, the Android Open Source Project's virtual-device framework, to run natively on macOS and Apple silicon. The post is by Hadrien Zalek, Joe Knox, Alex Chong and Marcel Apfelbaum. Reality Labs builds products such as AI glasses, and it uses emulators to scale development and testing without relying on scarce physical hardware. The result is not an official Google or AOSP release. Meta ships it as a QEMU fork and a patch set, and says it is still exploring how to contribute the changes upstream.
Why Meta wanted one platform
Testing software for non-phone Android devices depends on how closely a virtual device reproduces the software behavior of the real product. A lightweight emulator such as Goldfish gets you part of the way, but differences from the real device can hide bugs until late in development. Cuttlefish boots the same system images as real hardware and runs a realistic software stack against virtual hardware, so it tracks a physical device more closely. The catch was that Cuttlefish supported only Linux, while Meta's application and library developers work on Macs with Apple silicon. Meta therefore had to support Goldfish and Cuttlefish side by side. The post says this drained computing resources, confused developers, slowed the emulator team and forced every tool to support two platforms. It also notes that AOSP draws the same line: Goldfish for application developers, Cuttlefish for platform developers.
The three gaps on macOS
Cuttlefish is the orchestration layer. The component that actually runs the guest operating system is a virtual machine monitor. On Linux, Cuttlefish normally uses crosvm and once supported QEMU as an alternative, but that integration had become inactive. To get native Apple silicon support, Meta revived QEMU support. Many Cuttlefish virtual devices use vhost-user backends, which are separate processes that provide virtio devices to QEMU over a socket. Large parts of this design assumed Linux. Three assumptions broke on macOS: the vhost-user machinery was gated to Linux and would not build or run, Apple's hypervisor imposed resource limits QEMU did not expect, and the native display, build and signing paths did not exist.
What Meta changed
The most important change was in QEMU's vhost-user path. The frontends, libvhost-user and contrib backends such as vhost-user-blk were gated to Linux. Meta relaxed those build restrictions so they build on macOS as well, which lets Cuttlefish's device backends hand off to QEMU on a Mac as they do on Linux. On Apple silicon, QEMU accelerates through Hypervisor.framework (HVF) instead of KVM. The HVF backend did not track enough memory regions for larger Cuttlefish configurations, so Meta raised its tracking-slot count.
For display, Meta moved to QEMU's native Cocoa display instead of relying on the WebRTC interface. The changes include BGRA pixel format support to remove visual artifacts, mouse clicks translated into touch input, and a custom geometry option through the -g flag. Meta also enabled the unstable Rutabaga structures needed to match the Rust-side graphics ABI in gfxstream and rutabaga configurations. Finally came build and packaging work: Darwin build support, building QEMU for arm64 on macOS, toolchain fixes, the JIT entitlement, and code signing and notarization. On the Cuttlefish side, Meta added macOS host support so the orchestration builds and runs on a Mac.
Benefits Meta reports
By moving to one platform, Meta says it cut maintenance, reduced infrastructure needs, removed redundant tooling, improved fidelity, and made sure developers run the same virtual devices that CI uses. A single platform also made it easier to support Bluetooth pairing, Wi-Fi, cellular, 3D graphics, over-the-air update testing, Fastboot and snapshotting for CI and development. These are Meta's own claims. The post gives no benchmark, cost figure or measured fidelity score. Meta also says the same virtual device is shared with external developers who build for its ecosystem, so third-party teams test against the platform Meta uses to validate its own OS.
The post adds an argument about AI agents. As agents play a larger role in Android development, checking how code runs matters as much as generating it. Virtual devices let engineers and automated agents work at the same time in isolated environments, reset state instantly and repeat test runs without sharing physical hardware.
How to get it, and what is missing
Meta distributes the work in two parts. The repository qemu-wearables is a Meta-maintained QEMU fork that carries its commits. The repository cuttlefish-wearables is a set of patch files, with instructions for patching Android and AOSP. Both sit under facebookincubator on GitHub and include build and patch-application instructions. Meta credits the QEMU and Cuttlefish communities, and in particular the vsock-user implementation by Stefano Garzarella, which directly enabled the macOS integration.
Be careful with the word "full" support. The post describes a working port for Meta's own use, shared as a fork and patches. It does not say the changes are merged into QEMU or AOSP, and it does not list unsupported features or known bugs. Until upstream accepts them, anyone who adopts this must apply patches and rebuild, and keep that work current.
Sources
FAQ
What is Cuttlefish and why did Meta port it to the Mac?
Cuttlefish is the Android Open Source Project's virtual-device framework. It boots the same system images as real hardware, so it tracks a physical device more closely than the lightweight Goldfish emulator. It only supported Linux while Meta developers use Apple silicon Macs, so Meta ported it to end the cost of running two emulator platforms.
Is this an official Google/AOSP upstream release, and is it merged into QEMU or AOSP?
No on both counts. Meta shares the work as two GitHub repositories: qemu-wearables, a Meta-maintained QEMU fork, and cuttlefish-wearables, a set of patches for Android and AOSP. Meta says it is still exploring how to contribute upstream, so adopters must apply the patches and build the software themselves.
What did Meta change to make Cuttlefish run on macOS?
Meta made three kinds of changes. It relaxed the Linux-only build limits on vhost-user in QEMU, raised the number of memory-region tracking slots in the HVF backend, and moved to QEMU's native Cocoa display. It also added arm64 builds, the JIT entitlement, code signing and notarization.