How to undervolt a mac to increase its battery life.

Macbooks are known for packing powerful specs under a slim body. Due to insufficient cooling, they run hot and if you are doing some heavy work the temperature even reaches around 90 degrees but no worries! we have found a fix for it ‘undervolting’. It can reduce your MacBook’s temperature by 10-15 degrees. The undervolting process is easy in windows via software such as Intel extreme utility. But in mac, it is not easy to do, so I decided to write one as I didn’t find any undervolting a mac article on the internet.

Why should you undervolt a mac?

As I said above undervolting a processor improves its performance by allowing it to stay at turbo boost for a longer period, it also improves battery life as the voltage to the CPU will be reduced and heating is also less. So as you can see there are so many advantages of undervolting a CPU. Also if you want more performance you can overclock your CPU along with undervolt.

Underclocking vs undervolting. Which is better?

Underclocking is what most of us prefer when it comes to reducing heat and increasing battery life but it impacts the performance in a negative way means your performance will go down as you underclock your processor. But that’s not the case with undervolting, here you reduce the voltage of the CPU and GPU by some mV so the CPU can run efficiently in all its frequencies. In undervolting, battery life will be increased, heat will be reduced and performance will also increase because if your CPU will be generating low heat, it can stay at turbo speed for a higher period of time. Unlike underclocking in which you can reduce clock speed in one click, undervolting requires some time because you have to experiment in-order to achieve a stable voltage in which your CPU will ideally and this will require several reboots and several hours of stress tests.

Before we begin make sure that your mac or Hackintosh is running mac 10.12 or higher otherwise it won’t work. So let’s start.

Method 1. Using undervolting script

Step 1. Download the script from here and unzip it.

Step 2. Reboot your mac and while it starts press command + R to boot into recovery mode. In recovery mode click utilities and open terminal. In terminal type:

csrutil enable --without kext

and then reboot. This command will turn off the SIP for unsigned kexts. For Hackintosh users can do it via recovery as well as from installation media drive.

Step 3. Open the terminal app, type cd and then drag the voltageshift folder from downloads to the terminal window or you can manually type the path to the folder. Now type “"./voltageshift info” by this command you can see your current voltage stats, as you have not applied undervoltage settings the voltage should be 0 and once you undervoltage your CPU the voltage will be –xx

Also read: How to create bootable USB of macOS high sierra on windows

Step 4. In terminal type:

./voltageshift offset -60

this will decrease the CPU voltage by -60 mV, to check if it is working type ./voltageshift info and now in voltageshift info you should see CPU voltage offset of -60mv.

Now we have to check whether the applied settings is stable or not if the voltage is unstable your system will freeze and will shutdown. Please note that every single CPU is different, even if we have the same CPU the settings worked for me may doesn’t work for you, So you have to test yourself by a stress test.

I have undervolt my cpu by -75mV

Step 5. Open another 5 terminal windows and type:

yes > /dev/null

in all the 5 terminal window. Every terminal window will consume 20% of your CPU, so 5 window will utilize 100% for your CPU. Now leave your mac for 1 hour to make sure it is stable. However 1-hour stress test is not required for -60 mV offset because it is not too much if you undervolt it further like -80 mV or -100mV then you need some hours of testing.

“5 yes” process making cpu utilization 100%

Now from the above command, the undervolt settings will be there until you reboot means after you reboot you have to again follow those steps. To save our time and not entering the commands again and again we will make the script run at every boot, so the settings gets applied automatically.

Also read: How to overclock raspberry pi 3

Step 6. Open the terminal app and copy paste this command:

sudo ./voltageshift buildlaunchd -xx 0 0 0 0 0 60 (replace xx with your stable voltage).

Method 2. Undervolt using volta.

In this method, we will use an app called Volta to undervolt our CPU. The above script and this app both use the same method to undervolt the CPU means you must enable SIP without kext. Volta provides a graphical interface for easy undervolting. But the sad thing is that the app is not free. You have to pay $8 to use the app. However, it is available for 7 day trial for testing or you can use clean my mac to reset its trial.

Step 1. Download the volta app from here.

Step 2. Open the app then a power icon will appear in above task bar. Click on the icon and use the slider to set it to -75 and click apply.


Step 3. Open 5 terminal windows and paste this “yes > /dev/null” command in every window. This will start stress test to ensure that the applied voltage is stable if your mac freezes or shuts down that means the applied voltage is not stable and you have to reduce it.

Step 4. To automatically undervolt your CPU while you log in, click the volta icon and then click the settings icon below left. In settings enable ‘launch volta on login’ option. You can also enable low power when unplugged to get more battery life.

Did you face any problem while undervolting your mac? feel free to ask in comment!

Credits: Sc Lee for voltageshift

Get more stuff like this

Subscribe to our mailing list and get interesting stuff and updates to your email inbox.

28 thoughts on “How to undervolt a mac to increase its battery life.

  1. Great post, thank you !
    Unfortunately, I’ve tried to undervolt my 6920HQ on my 2016 15″ MBP with no luck. I did try with both methods, using voltageshift and the app Volta.
    csrutil in custom mode without kext (also tried completely disabled too). Voltageshift shows 0mv after passing the offset command with any negative and positive value.

    This tool would be golden if it worked for me. Been waiting for years to have this on my notebook.

  2. Using Volta ? Yes the undervolting part of the app is locked to 0mv and I can’t change the value.
    Again, I made sure to apply all security changes for the app before trying it (custom SIP mode and allow extension).
    What do you think ?

    • the first method should work however there is a bug that shows 0mv offset after running the undervolt command but after restart, it shows the correct values. Don’t know why it is not working in your mac! did you correctly disabled SIP and correctly entered the commands?

      • AFAIK, the offset command should be overwritten after reboot unless you have specified the offset values in a buildlaunchd command. Correct me if I’m wrong. I’ll try to check the Voltage values of my CPU after an Offset command with the « mon » command even if it shows 0mv offset after voltageshift.
        I did heard about somebody who had the same difficulties with the same model but the regular CPU.
        Thanks again for your help !

          • None is working, offset and buildlaunchd all lead to 0mv, even after restart.
            I double-checked all prerequisites :
            • SIP custom mode (even disabled it)
            • permissions commands for the .kext
            • put the binary in a folder different from downloads
            I believe the script doesn’t work for Skylake & above macs
            Thanks for your help.

      • Hi Manash,
        Thanks for the rapid reply, I already performed reboot, and after your message rebooted again. Still there is no output at the terminal.
        I think application did not work. I do use Intel Power Gadget app, to monitor CPU wattage, and under 100% CPU load no there is no change.
        Thank you again..

          • Hi again,
            I performed the first step (csrutil enable –without kext), but did not pay attention to the message. Now I tried for the second time and there is this message:

            csrutil: requesting an unsupported configuration. This is likely to break in the future and leave your machine in an unknown state. Successfully enabled System Integrity Protection. Please restart the machine for the changes to take effect.

            So is SIP disabled or not?

  3. I made this work on my Dell Xps 9350 i7-6560U intel Iris HD540 (3200×1800)
    Running Os Mojave 10.4.1
    Downloaded voltageshift folder
    In Terminal cd to that
    sudo chown -R root:wheel VoltageShift.kext
    ./voltageshift info
    ./voltageshift offset -75 -25 -75
    sudo ./voltageshift buildlaunchd -75 -25 -75 0 0 0 60
    Battery life increased at least 10%.
    its working after every cold boot and reboot.
    But after wake from sleep these values return to -0
    Any idea why ?

    As my setup dos´nt support Hibernation I disabled it using a script called (google)

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.