Skip to content

0.7.9 beta (not tested on hardware)

Pre-release
Pre-release

Choose a tag to compare

@OverlordDev OverlordDev released this 06 Nov 07:47

0.7.9 BETA: PKU hidden for Android, read-only mappings for Apple's Virtualization framework, Docker settings fix

Beta. Install at your own risk. The kext changes in this build have not been run on a real PC yet: they compile, the unit tests pass and the kernel symbols resolve, but I have not booted this kext. A bug in a kernel extension can freeze or crash the machine. Keep a fallback OpenCore entry (or the previous kext) at hand. If you need something stable, stay on 0.7.8.

What changed since 0.7.8:

  • Android Emulator (issue 8): PKU/OSPKE are hidden from the guest. macOS never enables PKRU in XCR0, but the emulator passes the host's CPUID leaf 7 through, so a Linux guest set CR4.PKE and failed every signal frame (get_xsave_addr_user warning, black screen, adb offline). The kext now clears those two bits for every client. This is pull request 11 by @suwardhana, who found the cause and tested it on a Ryzen 7 7700X (Android boots, sys.boot_completed=1). CPUID exits are now tracked for every client, not only HyperKit and Parallels, so please check that Docker and Parallels still start.
  • Apple Virtualization framework (issue 14): read-only mappings. A range the process can only read (a firmware image mapped from a file) failed with VM map: cannot pin the buffer: 0x2. If the normal pinning fails, the range is now pinned for reading and mapped without write for the guest (the log says so: mapped read-only). I reproduced the log line with a small program (build/hvf-ro-map-test, in the archive's source tree), but I could not run the Virtualization framework sample itself. Whether it then starts is not known.
  • Docker Desktop (issue 13): ./rhv docker-desktop no longer stops at settings-store.json. plutil cannot write a file that is just {}; a missing or empty file is now written whole.

Still open: Android Emulator hangs seen on 0.7.8 other than the PKU one (an endless nested page fault; a loop in firmware with the host GPU), UTM 5.0.8 and the Windows installer (issue 15), Docker with code-signing enforcement on (issues 1, 10), USB in Parallels (issue 6). Sleep/wake with a running VM is in review (pull request 12 by @quangnguyenn98, not part of this build).

Thanks to everyone whose reports and logs led to this build: @suwardhana (the PKU diagnosis and the fix), @qualchrone (testing every Android build and the logs that showed the invalid CR0), @Tresillo2017 (the detailed Android report and the stale hyperkit.pid hint), @georgwacker (issue 14 with logs, and the reports on Docker, Parallels and UTM), @Astral420 (issue 13), @aklusa022 (issue 10), @wh0ami7 (UTM), @quangnguyenn98 (the sleep/wake work).

Tested: the unit tests (make test), the kext builds and all its imported symbols resolve against the kernel. Not tested: the 0.7.9 kext on hardware (any machine), Android Emulator, Virtualization framework, Docker and Parallels with this kext, macOS 26.

Update: unpack, ./rhv kext --native, reboot. Boot service: ./rhv autostart install if you have not run it since 0.7.7.