Managing kernel extensions (KEXT) has evolved over recent years as Apple works to phase them out in favour for more modern approaches like System Extensions which execute in the reduced privileged user-space as opposed to the elevated privilege of running in kernel-space. The reason for this change is part of Apple's push to make the Mac as much an appliance as possible and to keep the core operating system as stable as possible by keeping the contents of the system to Apple-only code.

To that end, the method in which KEXTs are managed (loaded, unloaded, installed, etc...) has evolved. What hasn't been updated to keep pace with these changes are the KEXT installers, this not unique to Symply.  This means Symply are finding more cases of KEXT installers not succeeding in leaving the system able to successfully load the newly installed KEXT.

Below is a list of OS version specific code to assist with allowing the KEXT to load successfully at the next boot time. Run the appropriate commands for your macOS version and then reboot, this process has succeeded in assisting customers with issues where the SymplySPARK products appear to fail to connect to their Mac systems.

macOS Mojave

sudo kextload /Library/Extensions/<KEXT_NAME>.kext
sudo kextcache -i / -f

macOS Catalina

sudo kextcache -prune-staging
sudo kextload /Library/Extensions/<KEXT_NAME>.kext
sudo kextcache -i / -f

macOS Big Sur and above

sudo kmutil clear-staging
sudo kmutil load -–load-style start-and-match -p /Library/Extensions/<KEXT_NAME>.kext
sudo kmutil install --force

Custom Package for Spark/Accusys kext

We have created 2 versions of a custom package which installs a launchd item and bash script which will unload the old version of the ACS6x.kext and load the newest version at boot time as root.