Fix macOS 15 startup by keeping nested virtualization disabled - #215
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
On macOS 15, QEMU can pass the paused nested-virtualization probe and then abort with
HV_BAD_ARGUMENTwhen a vCPU runs. The launcher subsequently reports a sleep-control connection failure because QEMU has already exited, as documented in the reporter's follow-up.Require macOS 26 or newer before running the EL2 capability probe. macOS 15 now boots with the existing compatible EL1 configuration, and an unreadable host version also falls back to EL1. On newer macOS releases, the hardware capability probe still determines whether to enable nested virtualization. Update the documented nested KVM requirements.
Fixes #211.
Validation
make testpasses, including 268 native tests and the guest, launcher, networking, and storage suites.macos/build-app.sh --guest-dirpointing to existing pinned guest artifacts, reusing the pinned QEMU runtime. Bundle signature verification and all 21 Mach-O compatibility checks for macOS 15 passed; the bundled launcher matches the updated source.Validation ran on macOS 27. The macOS 15 launch decision is tested with a simulated OS version and QEMU; a live boot on the reporter's macOS 15/M4 Max hardware remains unverified.