LockerGnomeFor serious tech professionals with a silly side.
Subscribe

Search

Softwaremacossnapdragonhackintoshopen source

Snapintosh boots Apple's own macOS 27 kernel on an ASUS Snapdragon X2 Elite laptop, with a Metal driver written from scratch

A hypervisor on the Zenbook A16 fakes the Apple silicon parts the macOS kernel expects, and a new driver stack draws the desktop on the laptop's Adreno GPU. Every boot still runs from a Mac over USB-C.

Chris plugs a cable from a small silver laptop into a larger laptop whose screen lights up with a clean desktop of floating window shapes
Illustration: LockerGnome

The README gets specific fast: “Snapintosh boots Apple’s macOS 27 (build 26A428) on an ASUS Zenbook A16 laptop with a Qualcomm Snapdragon X2 Elite (X2E-96-100).” It supports exactly that: one laptop model, the UX3607OA, one chip variant and one macOS build.

The core is a hypervisor running at EL2, the privilege level above the operating system. “The monitor runs Apple’s stock kernelcache (the J700/T8140 kernel) unmodified by default,” and it supplies what that kernel expects from a real Mac: “the SPTM and TXM monitor calls, translation of the kernel’s 16 KiB page tables, and the Apple devices the kernel looks for.” One of those devices is Apple’s NVMe storage controller, emulated, so macOS installs to and boots from the laptop’s own SSD. Opt-in kernel patches exist in a separate document, which is why “unmodified” comes with “by default.”

The graphics are the wild part. The project wrote a Metal driver plug-in, AdrenoMetal, an IOGPU kernel extension, AdrenoX2, and a display driver for the panel. Its shader compiler, air2ir3, translates Apple’s AIR, the intermediate code inside Metal shaders, into Mesa’s ir3 for the Adreno X2-90. When it can’t reproduce a shader exactly, it refuses with an error. “There is no software, CPU or paravirtual rendering path.” The roadmap explains why: WindowServer wouldn’t draw a desktop without a Metal device.

The status page reads like a bench log. The kernel boots on six virtual CPUs. From there it reaches launchd, WindowServer and the login window, and lands on the desktop. A pixel probe over 14 desktop scenes, 36 frames, “passes with 0 mismatching tiles.” The keyboard and touchpad work, Mission Control and app switching included.

The rough edges are listed just as plainly. Busy stretches run at a median of about 46 to 60 presents per second, so it’s usable and short of smooth. The Displays pane in System Settings “redraws badly (‘accordions’).” A single 4 MiB GPU copy once hung the chip, and the plug-in now splits copies into chunks of 1 MiB or less. Wi-Fi is half there. It connects through a harness driven from the Mac, and the macOS Wi-Fi menu can’t join a network yet. Audio, cameras, Bluetooth, sleep and external displays aren’t supported.

The roadmap’s next gates are a steady 60 Hz, then the panel’s 120 Hz, then GPU clocks above the current 1185 MHz ceiling. Each of those runs through code nobody at Apple or Qualcomm wrote, on a laptop that still can’t boot macOS without a Mac plugged into it.

More Software

Every Software story →