Are Kernel Extensions Stored Elsewhere on macOS?

big surkernelmacosterminal

I discovered a kernel extension earlier in this path "/Library/Application\ Support/VirtualBox/VBoxDrv.kext".

What confuses me a bit, are extensions not saved in /Library/Extension?

Best Answer

KEXT files can reside in 3 locations:

  1. Within an application bundle (XXX.app)
  2. Within an application's sub-directory inside /Library/Application Support
  3. And inside /Library/Extensions

Generally where the app developer chooses to place the kext files depends on the app itself and what makes sense for it (eg. how it stores local data, how frequently a kext might need to be updated, etc).

Kext files related to system functions, like network adapter or mouse drivers, will almost always be inside /Library/Extensions as those are loaded on startup. While app specific kext files like what VirtualBox has, can be located elsewhere as they only need to be loaded when the app is in use.

Here's a source: https://developer.apple.com/library/archive/technotes/tn2459/_index.html