can a sysext with earlyboot propertykey enabled run it's host app before other app run?

hi!

I know endpoint security sysext with earlyboot property key enabled will run before all other applications run while system booting.

presume all these are done before earlyboot time out: sysext run it's host app, host app notify sysext to subscribe some events through xpc, then other apps start runing.

though this whole process seems to violate "sysext runs before all other applications run"... I still wonder is this possible?

Answered by DTS Engineer in 796117022

Lemme restate your goal, just to be sure we’re on the same page. You want to:

  • Create an Endpoint Security system extension. Such an extension is necessarily embedded within a container app [1].

  • Set NSEndpointSecurityEarlyBoot so that you sysex starts first.

  • And yet have your contain app run early in the boot process so that it can configure you sysex.

Is that right?

If so, then no, you can’t do that. What you should do is have the container app configure the sysex and have the sysex save that configuration in its own preferences. Then, when the sysex comes up, it can set itself up based on those preferences. If, after the system has booted, the container app starts, it can reconfigure the sysex if it wants.

Share and Enjoy

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

[1] In Apple parlance, the container app is the app in which the extension is embedded and the host app is the app that’s using the extension. In the case of a sysex, the host app isn’t an app, but the system itself.

Accepted Answer

Lemme restate your goal, just to be sure we’re on the same page. You want to:

  • Create an Endpoint Security system extension. Such an extension is necessarily embedded within a container app [1].

  • Set NSEndpointSecurityEarlyBoot so that you sysex starts first.

  • And yet have your contain app run early in the boot process so that it can configure you sysex.

Is that right?

If so, then no, you can’t do that. What you should do is have the container app configure the sysex and have the sysex save that configuration in its own preferences. Then, when the sysex comes up, it can set itself up based on those preferences. If, after the system has booted, the container app starts, it can reconfigure the sysex if it wants.

Share and Enjoy

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

[1] In Apple parlance, the container app is the app in which the extension is embedded and the host app is the app that’s using the extension. In the case of a sysex, the host app isn’t an app, but the system itself.

can a sysext with earlyboot propertykey enabled run it's host app before other app run?
 
 
Q