A client needs to completely disable bluetooth. The most basic level (aside from physically disconnecting the antennas or removing the airport card) seems to be disabling the kernel extensions.

I looked in /Volumes/<your system's drive name>/Library/Extensions/ while in recover mode, courtesy of this question, but there were no bluetooth extensions there.

Supposedly deleting /System/Library/Extensions/IO80211family.kext will disable wifi, but I also ran into issues trying to delete this without being in recovery mode. (Recovery mode shows this file in /Volumes/<your system's drive name>/System/Library/Extension, and wifi was successfully disabled after deleting that file from within recover mode, showing No Hardware Installed after rebooting.)

What file should I delete to achieve the same result for bluetooth?

  • Keep in mind that any user with administrative access can simply re-enable bluetooth by downloading and loading those extensions. It might also be re-enabled after any system update. If you are not modeling against a privileged user a MDM profile is a better solution. – John Keates Aug 6 '19 at 2:38
  • @theologin The client requested this. – user3.1415927 Aug 6 '19 at 3:13
  • @Johnkeates These kernel extensions could be reinstalled via direct copy or OS reinstall, but there updates only check specified extensions. There is no such things as perfect security, but security-in-depth is still best practice, last I checked. – user3.1415927 Aug 6 '19 at 3:16

I'll leave this open to a more definitive answer, but after some guess-and-check I was able to disable the Bluetooth preferences pane with an error To see this preferences pane, you may need to connect a device to your computer. by removing the /System/Library/Extensions/IOBluetoothFamily.kext file.

Clarification as to which of the following found kernel extensions are specifically responsible for Bluetooth IO would be appreciated:

$ ls /System/Library/Extensions/*lue*








boot into recover mode, go to /Volumes/[your disk name]/System/Library/LaunchDaemons/

Disable the bluetooth daemon by renaming it:

mv com.apple.bluetoothd.plist com.apple.bluetoothd.plist.DISABLE
mv com.apple.bluetoothaudiod.plist com.apple.bluetoothaudiod.plist.DISABLE
mv com.apple.bluetoothReporter.plist com.apple.bluetoothReporter.plist.DISABLE

reboot and there will be no more bluetooth.

  • Will this disable it to the same extent that we're moving the current extension will? – user3.1415927 Aug 5 '19 at 16:48
  • 1
    It is a different approach than deleting/moving the kernel extensions. Here I am disabling the bluetooth system service. The final result is no bluetooth. Once disable [by renaming] it is impossible to load it again (unless rebooting in recovery and renaming back those files). If you prefer you can also delete them. Your approach to delete the kernel extension is more agressive, you remove the driver from the kernel. Unless you need to wipe it for some reason, disabling the services is less agressive and more safe to keep system stability. – Prado Aug 5 '19 at 17:36
  • 1
    Considering it is necessary to remove the kernel extensions, it depend of MacOS version. I checked it now on two systems: Catalina and El Capitan, they a different. You can see all the responsible exten for bluetooth by clicking on the apple logo on the upper left corner of the toolbar, select "About this mac" and press "System Report". Once opened, roll down to item Software -> Extensions. All kernel extensions will be listed making it easy to find the bluetooth extensions & their path/filenames. Catalina has 7, El Capitan has just 4. This is the best place to find them all. – Prado Aug 5 '19 at 17:48
  • I appreciate the detail in your comments, as well as the comparison of the two approaches. I recommend adding the information to your answer, as I found it helpful and educational, and other users may also benefit. – user3.1415927 Aug 6 '19 at 3:19

You must log in to answer this question.

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