>>FIRST MISSION//LOGS//bluetooth//turning-off-completely-macos-mojave-bluetooth.MD
[ + ] TARGET_LOCKED200 OK
JUL 03, 2019timer 3 MIN READSYS_TAG: bluetooth STATUS: VERIFIED_WORKING

Turning Off Completely macOS Mojave Bluetooth

ENGINE: KERNEL // STABLE
BASE_ARCH: x86_64
HOST: VASTORIGINS.COM
GPG: OKSIG_ID: 0x4EB27DB0

We keep moving forward, opening new doors, and doing new things, because we’re curious and curiosity keeps leading us down new paths.

~ Walt Disney.

Recently, as you may have noticed from my post, I’ve tried to build a hackintosh1, but my WiFi and BT (Bluetooth) card are not compatible, or does not have compatible Kexts (stands for kernel extensions, which is a driver module for macOS).

As the BT card installed in my laptop still consumes power, I became curious on how to disable it. I have tried many ways that are not destructive, which correspond to software config modification. There are successes in destructive ways according to some forums, but I don’t like those (e.g., soldering certain parts of the half-mini PCI-E or PCI Express board, or removing the PCI-E board completely). I’ll try to explain what works for me in disabling the BT without touching the internals of the laptop.

⚡ Stop the Power State

First and foremost, you need to disable the power state of the BT driver:

defaults write /Library/Preferences/com.apple.Bluetooth.plist ControlPowerState 0

This writes a preference that tells the Bluetooth stack to stop managing the power state of the hardware. On a Hackintosh with an unsupported card, that single flag is often enough to stop the silent battery drain, because the card can finally stop listening.

🚫 Unload It from Startup

Then we unload it from the system startup, so applications that rely on it won’t even load up in user and kernel space:

launchctl unload /System/Library/LaunchDaemons/com.apple.bluetoothd.plist

The Bluetooth daemon (bluetoothd) is the process that runs the whole BT stack. Unloading its launch daemon removes it from the current session, and because the plist is gone from the startup list, it will not return on the next boot.

That’s all to it. Your BT is now completely disabled and not draining anymore power.

🔄 Re-Enabling Bluetooth

Anyways, if you want to re-enable BT again in your startup and load it on your system, just execute the code below:

launchctl load /System/Library/LaunchDaemons/com.apple.bluetoothd.plist

launchctl start /System/Library/LaunchDaemons/com.apple.bluetoothd.plist

What this does is put the running daemons back in place on the startup execution phase. Keep both lines handy, because you will need the reverse command the moment you find a compatible Kext.

🧠 Final Thoughts

A disabled Bluetooth card on a laptop you need to coax into behaving is a small victory, but it is the kind of small victory that makes a Hackintosh build livable. No soldering, no hardware surgery, just two configuration commands and their two undo commands.

If you ever find yourself on a similarly misbehaving Mac, bookmark this page: the power state flag for the drain, the unload for the services, and the load commands for the day you get a real card. That’s all and thanks for reading this article.


  1. A Hackintosh (a portmanteau of “Hack” and “Macintosh”), is a computer that runs macOS on a device not authorized by Apple, or one that no longer receives official software updates. ↩︎
[ SIGNATURE VERIFIED // GPG 0x4EB27DB0 // PROVENANCE SECURE ]
➔ RETURN TO LOGS