Is there a way to (programmatically) find active system/network extensions?

I mean, I could do a readdir on /Library/SystemExtensions/, but that won't really tell me which ones are active. I could parse the output of systemextensionsctl list but that doesn't seem particularly good.

Only within your apps sandbox.

macOS, so the app needn't be sandboxed. Sorry I didn't make that clear.

All system extensions? Or system extensions that you ‘own’?

If it’s the latter, the container app can check on the status of the system extension using a properties request, creating using the propertiesRequest(forExtensionWithIdentifier:queue:) method.


If you’re trying to get a global view of all system extensions installed and active, that’s tricky. Why do you need that info?

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

I knew I had a reason for wondering about others, but I think that was just curiosity.

The issue I'm trying to deal with is having the transparent proxy not come back automatically; I had thought I could use a daemon we have to try to start the VPN if it was not connected, but I'm not sure that is possible. (After the containing app loads the extension; the reason to see if it's already loaded is to send a message off to an agent, which would then open a url to cause the containing app to launch and load.)

... There is virtually no documentation about propertiesRequest(forExtensionWithIdentifier:queue:). Since it takes a dispatch queue, I assume it returns a OSSystemExtensionRequest instance, and then I should set the delegate? And the delegate method -request:foundProperties: method will be invoked?

Sorry I seem to have cross the Swift and ObjC streams in that. 😄

There is virtually no documentation

Check out the doc comments in the <SystemExtensions/SystemExtensions.h> header.

Share and Enjoy

Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

Also, yet another async call. 😄

Is there a way to (programmatically) find active system/network extensions?
 
 
Q