1

I have a late-2013 MacBook Pro 15" which still has the original battery. It's at 1,144 charging cycles, and a few days ago the battery health was at about 50%, though since then it plunged to 4%.

The output of pmset -g batt:

Now drawing from 'AC Power'
 -InternalBattery-0 (id=xxxxxxx)    100%; charged; 0:00 remaining (Poor/Good)
    failure: "Permanent Battery Failure" present: true

(Just yesterday, the output was the same except for failure: "Fuse Blown".)

The output from System Information:

Battery Information:

  Model Information:
  Serial Number:    [redacted]
  Manufacturer: SMP
  Device Name:  bq20z451
  Pack Lot Code:    0
  PCB Lot Code: 0
  Firmware Version: 702
  Hardware Revision:    1
  Cell Revision:    1206
  Charge Information:
  Charge Remaining (mAh):   308
  Fully Charged:    Yes
  Charging: No
  Full Charge Capacity (mAh):   319
  Health Information:
  Cycle Count:  1144
  Condition:    Replace Now
  Battery Installed:    Yes
  Amperage (mA):    0
  Voltage (mV): 11090

The battery/power icon on the menu bar also indicates Condition: Replace Now.

According to a series of other posts (1, 2, 3, 4, 5), when the battery is detected as dead or removed, the CPU is throttled to its slowest possible speed. This is what happened to me two days ago: after a restart (due to taking out the power adapter a few seconds before closing the lid), the computer was running very very slowly and iStat Menus was always showing a CPU clock speed of 800 MHz.

Now, I understand the battery is shot and needs replacing, and I have ordered a new one, but it won't arrive overnight. I need to keep using the laptop in the meanwhile as it is the only computer I have. It's really painful to work with the CPU permanently throttled to 800 MHz, and I'm looking for a temporary fix.

As I understood from other answers, this might be impossible, but funnily enough, I was fiddling around with this yesterday, and at some point, the computer suddenly felt snappy again (this happened at about the same time I was using pmset to change hibernatemode from 3 to 25, but it's probably not related). Checking iStat Menus, the CPU was no longer being throttled. This is exactly what I needed to hold out for the period until the battery arrives.

Unfortunately, this morning the laptop rebooted again. This is despite the fact that I closed the lid on the computer, waited until the fans stopped, and only then took out the power adapter, but still, when I connected the power adapter again and opened the lid, it had rebooted. Now the CPU is stuck at 800 MHz again and the computer is again unusable.

My question is: since it came out of throttling once (although I'm not sure what happened, or what I did, that was responsible), is there anything I can do to make it come out of throttling again?

2

Please note that this can damage your device.. you've been warned. Continue at your own risk

In short, IOPlatformPlugin is power management, CPU scaling, idle frequency (and others). How much the following helps is arguable.

  1. Disable SIP in recovery (CMD+R on boot), open terminal (CMD+3 i think), csrutil disable
  2. Reboot into MacOS, move /System/Library/Extensions/IOPlatformPlugin.kext to / or somewhere else sudo mv /System/Library/Extensions/IOPlatformPlugin.kext / (terminal)
  3. Rebuild cache sudo kextcache -i /, reboot
  4. Re-enable SIP in recovery csrutil enable
  • I’ve already replaced the laptop’s battery, so unfortunately I can’t comment on the efficacy of this solution. I do invite others going through the same problem to comment on whether it “fixes” the throttling issue. – swineone Sep 30 '18 at 19:54
  • Please provide more explanation on why move kext file to root to your answer – Croll Apr 12 at 12:20
1

This worked for me. However, the MacBook Air then boots and runs with full fan ALL THE TIME. It loses the ability to detect CPU temperature.(and apps like Mac Fan Control, cannot detect the fan)

  • Go to System > Library > Extensions. Next, scroll down and find a text file called IOPlatformPluginFamily.kext.
  • Right-click on the file and head to Show Package Contents > Resources > Plugins.
  • In the new list, right-click on ACPI_SMC_PlatformPlugin.kext and go to Show Package Contents > Contents > Resources.
  • Finally, locate the PLIST file that corresponds to your previously-noted Mac model number and delete it.

I then needed to reboot three times. Well, I noticed it started working after I rebooted a few times! enter image description here

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .