Mac OS X,  Mac Security

Extensions Manager Swift Project for macOS

Extension Manager was an important app for those who managed Macs in the System 8 and System 9 era. It allowed us to see all of the extensions loaded in the classic OS and disable them. It was also easy to take extensions and move them to the desktop for troubleshooting. In the years since Apple began to pick apart what developers used kernel extensions to do, the type of extensions and how we use them has left us with a few different tools to comb through to see what extensions are on a system and what they do. Thus, let’s bring Extension Manager back (ish).

Let’s start with a little command line interface that takes output from a few different tools Apple developers have baked into macOS (namely systemextensionsctl and pluginkit) and wrap them into swift: https://github.com/krypted/extensionsmanager. This opens up the ability to list names, developers, team IDs, versions, and other important information once easily accessible into easily parsed formats. The usage (per the readme) is fairly straight forward:

extensionsman -all to show all extensions

or

extensionsman -thirdparty to show thirdparty extensions

or

extensionsman -n to show network extensions

or

extensionsman -s to show system extensions except network extensions

or

extensionsman -raw to show unformatted result

or

extensionsman -u to show system extensions that haven’t been loaded

or

extensionsman -h to show usage information

The project is posted in Xcode with the raw swift, the compiled binary, and as a zipped up Xcode project. Stay tuned for more as it progresses (time permitting).