-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Supporting Spoofless Usage #543
Labels
Comments
khronokernel
added
enhancement
New feature or request
back-end
Core functionality
labels
Oct 5, 2021
Testing has showed that the VMM branch is quite reliable, plans to be merged into mainline with 0.3.1. Currently to allow for merging into mainline, we'll need to adjust some things:
|
VMM Usage NotesRun down on quirks users should keep in mind when using a spoofless system:
|
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Currently with OpenCore Legacy Patcher, we use a minimal spoof approach to achieve native OS updates and installations. However as we've maintained this project, a spoofing approach has brought a numerous amounts of "hacks" to work around Apple's hard coded logic within kexts.
Moving forward, we should look to a spoofless approach in where we enforce a Virtual machine like enviroment allowing us to use our original SMBIOS while still allowing for native installer and OTA support.
Parrotgeek1's VMM patch set would force
kern.hv_vmm_present
to always return True. Withhv_vmm_present
returning True, both OSInstallerSetupInternal and SoftwareUpdateCore will set theVMM-x86_64
board ID while the rest of the OS will continue with the original ID.kern.hv_vmm_present
over manually setting the VMM CPUID allows for native features such as CPU and GPU power managementA current draft of this project can be found on the vmm branch
Benefits of VMM approach
Drawbacks of VMM approach
OS Support limited to Big Sur and newer
This is due to 2 reasons:
OSInstallerSetupInternal
andSUCore
added thehv_vmm_present
check with Big Sur, older OSes rely on probing the CPUID directlyhv_vmm_present
is only present in XNU 20.4.0+Potentially we can write a Lilu plugin to force
isVirtualMachine
to return true, however for older OS we're unlikely to justify the engineering efforts at least for the time being.Only applicable for Kernel Space
As
hv_vmm_present
is generated in the kernel, boot.efi must do it's own probe for CPUID. This adds another area where we must patch, either by settingHWBID
to a newer model in NVRAM or patching out the Board ID check entirely.-no_compat_check
is not ideal as Single User mode will ignore the argumentNo support for H.265 with Polaris+ GPUs
macOS's graphics stack assumes only iMacPro1,1 and MacPro7,1 support Polaris+ for hardware decode, usage of a machine's original SMBIOS with an upgrade GPU will result in feature loss.
Because of this, we will likely add new defaults for hardware probing to set minimal spoof when a Polaris or newer GPU is found.
Hardware-based License Keys breaking
As we switch to a no spoof environment, software tied to users hardware will need to request new keys. However this is expected with each macOS release regardless
Potentially unmasking new issues within macOS
As nearly the entirety of our testing and validation for the past year has been done on minimal spoofed machines, we'll need to do extensive validation
The text was updated successfully, but these errors were encountered: