I spilled coffee on my keyboard and most keys are now constantly pressed so the machine is not usable so I disabled the built-in keyboard in order to use an external keyboard but I am having some problems. I do not want to replace the built-in keyboard, I just want to disable it and use an external keyboard.

I searched around and found that I could disable the built-in keyboard by typing the following to disable:

sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/

And the following to enable:

sudo kextload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext/

I typed the above but it didn't work so I typed:

open /System/Library/Extensions

and deleted the file called AppleUSBTopCase.kext because I figured that it is the driver for the keyboard. This worked and everything is fine now but as long as the machine is connected to the internet, it will keep downloading the drivers after I delete them and the machine becomes unusable again once the keyboard is enabled. How can I prevent it from doing that (without disconnecting it from the internet...)?

  • Rather than deleting the entire AppleUSBTopCase.kext, just delete the PlugIn for the keyboard as you could end up preventing other parts of the top case from working too (such as the trackpad). Have you tried changing the permissions of the kext so that it is still present but skipped on launch? Bear in mind that these changes could be over written during your next OS update.
    – Sera H
    Commented Apr 15, 2015 at 19:20
  • Looks like AppleUSBTopCase.kext doesn't affect the trackpad because it still works fine. Even after I deleted that file, the keyboard somehow still works. I opened up the machine and physically disconnected the keyboard but I couldn't turn it on because the power button is connected to the keyboard... this is very frustrating. Commented Apr 16, 2015 at 4:53
  • I'm still researching into this but one direction I'd consider is using something like Little Snitch (or DNS block via Terminal) and block the OS's connection to the specific server which it downloads system files from. It will affect other parts for sure, but at least you'd have control over it. (EDIT: Are you sure this doesn't work? apple.stackexchange.com/questions/67133/…)
    – zerohedge
    Commented Apr 16, 2015 at 6:48
  • Yes, 100% sure it does not. When I type that command in terminal, I get an error message saying "sudo: kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyb oard.kext/ command not found" Commented Apr 17, 2015 at 19:20

1 Answer 1


I stumbled across this yesterday while performing maintenance on my server unit. Give it a shot and let me know the outcome (AFAIK this is only viable on Yosemite).

  1. Open 'System Preferences'
  2. Select the 'App Store' pane
  3. Deselect the checkbox marked 'Install system data files and security updates'

Hopefully, OS X should stop repairing your Extensions folder each time you connect to the internet.

Failing that, perhaps changing permissions for the kext (rather than outright deleting it) will just cause it to fail to load but still be present and therefore not re downloaded.

  • I ended up opening up the laptop and physically cutting the keyboard cable with scissors... Worked fine and now everything is working perfectly using an external keyboard. Commented Apr 18, 2015 at 2:49
  • Brute force works too! XD
    – Sera H
    Commented Apr 18, 2015 at 10:31

You must log in to answer this question.

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