Skip to content

Generate customized CPUFriendDataProvider.kext for dynamic macOS CPU power management

Notifications You must be signed in to change notification settings

stevezhengshiqi/one-key-cpufriend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Modify macOS CPU Performance

English | 中文

Instruction

The script is only for most 5th-10th generation CPU yet. I will try to add support for more models if needed.

The script can modify low frequency mode and energy performance preference, and use ResourceConverter.sh to generate customized CPUFriendDataProvider.kext.

By using this script, no file under the System folder will be edited. If you are not happy with the modification, just remove CPUFriend*.kext from /CLOVER/kexts/Other/ and restart.

Before install

  • Read CPUFriend WARNING
  • Good network
  • If you have FakeCPUID argument in config.plist, this script may cause issue
  • Make sure IOPlatformPluginFamily.kext untouched
  • Make sure Lilu is working
  • Make sure you are using correct SMBIOS model
  • plugin-type=1, often injected by SSDT-PLUG or SSDT-XCPM

NOTE: It is recommended to disable CPUFriend.kext and CPUFriendDataProvider.kext before a macOS upgrade. You need to re-generate CPUFriendDataProvider.kext whenever you update to a new macOS version; otherwise, you may suffer from bad PM or even kernel panic.

How to install

  • Run the following command in Terminal:
bash -c "$(curl -fsSL https://raw.githubusercontent.com/stevezhengshiqi/one-key-cpufriend/main/one-key-cpufriend.sh)"
  • For Clover users:

    • Copy CPUFriend.kext and CPUFriendDataProvider.kext from desktop to /CLOVER/kexts/Other/ and restart.
  • For OC users:

    • Copy CPUFriend.kext and CPUFriendDataProvider.kext from desktop to /OC/Kexts/.
    • Open /OC/config.plist and add the following code into Kernel - Add:
<dict>
    <key>Arch</key>
    <string>x86_64</string>
    <key>BundlePath</key>
    <string>CPUFriend.kext</string>
    <key>Comment</key>
    <string>Power management data injector</string>
    <key>Enabled</key>
    <true/>
    <key>ExecutablePath</key>
    <string>Contents/MacOS/CPUFriend</string>
    <key>MaxKernel</key>
    <string></string>
    <key>MinKernel</key>
    <string></string>
    <key>PlistPath</key>
    <string>Contents/Info.plist</string>
</dict>
<dict>
    <key>Arch</key>
    <string>x86_64</string>
    <key>BundlePath</key>
    <string>CPUFriendDataProvider.kext</string>
    <key>Comment</key>
    <string>Power management data</string>
    <key>Enabled</key>
    <true/>
    <key>ExecutablePath</key>
    <string></string>
    <key>MaxKernel</key>
    <string></string>
    <key>MinKernel</key>
    <string></string>
    <key>PlistPath</key>
    <string>Contents/Info.plist</string>
</dict>

Recovery

  • For Clover users:

    • If you are not happy with the modification, just remove CPUFriend.kext and CPUFriendDataProvider.kext from /CLOVER/kexts/Other/ and restart.

    • If unfortunately, you can't boot into the system, and you are sure the issue is caused by CPUFriend*.kext,

      • Press Space when you are in Clover page
      • Use keyboard to choose Block Injected kexts - Other
      • Check CPUFriend.kext and CPUFriendDataProvider.kext
      • Return to the main menu and boot into the system, then delete CPUFriend*.kext from your CLOVER folder
  • For OC users:

Credits

About

Generate customized CPUFriendDataProvider.kext for dynamic macOS CPU power management

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages