For real Macs, Apple hardcodes specific board-id and mac-rom identifiers into its power management plugins. When a Hackintosh booted, macOS would look for a power management profile matching its SMBIOS. If it found one (e.g., for a MacBookPro14,1), it would load X86PlatformPlugin.kext . If not, the system would fall back to a generic, inefficient AICPUPM (AppleIntelCPUPM) path. The result? The CPU would either idle at maximum frequency (causing overheating and fan noise) or refuse to boost under load (causing stuttering).
CPUFriend cannot function in isolation. It is a "Lilu Plugin." is the grand-daddy of patching kexts; it acts as a loader that allows other kexts to patch the kernel on the fly. When you install CPUFriend, it sits inside the Lilu dependency chain, looking for specific opportunities to inject power management configuration during the boot process. cpufriend.kext release
You should see CPUFriend and CPUFriendDataProvider in the IODeviceTree. For real Macs, Apple hardcodes specific board-id and
CPUFriend does not work alone; it requires a data provider to tell it which frequencies to use. acidanthera/CPUFriend: Dynamic macOS CPU ... - GitHub If not, the system would fall back to
Mastering CPU Power: The Ultimate Guide to CPUFriend.kext Release
CPUFriend requires two components to work: the main and a generated Provider (either a kext or an SSDT) that contains your specific CPU's power data. 1. Generate Power Management Data