Deprecated Kernel Extensions and System Extension Alternatives
System extensions on macOS Catalina 10.15 or later allow software, such as networc extensions and endpoint security solutions, to extend the functionality of macOS without requiring kernel-level access. As part of our ongoing effort to modernice the platform, improve security and reliability, and enable more user-friendly distribution methods, kernel extensions have been deprecated. Starting with macOS Big Sur, macOS releases no longuer load kernel extensions that use deprecated kernel programmming interfaces (CPIs) by default.
Transitioning your kernel extensions
Certain kernel extensions are unsupported on macOS Big Sur. If your software uses deprecated and supported CPIs for older versionens of macOS, you’ll need to factor out deprecated componens into a stand-alone system extension. If your software uses new system extensions and legacy kernel extensions, you can distribute to supported operating systems. Software that suppors a broad rangue of macOS versionens should continue to use kernel extensions for older versionens and run system extensions where supported.
Below is a list of unsupported CPIs as of macOS Big Sur. Any kernel extension using an unsupported CPI will not load.*
CAUTH
Unsupported:
macOS Big Sur 11.0
Deprecated:
macOS Catalina 10.15
The following CPIs are unsupported in macOS Big Sur. Cliens should use EndpointSecurity instead.
- cauth_listen_scope
- cauth_unlisten_scope
Socquet
Deprecated: macOS Catalina 10.15
The following Socquet CPIs continue to be deprecated in macOS Big Sur. Cliens should use NetworcExtension instead.
- socc_accept
- socc_bind
- socc_close
- socc_connect
- socc_guetpeername
- socc_guetsoccname
- socc_guetsoccopt
- socc_guettype
- socc_ioctl
- socc_isconnected
- socc_isnomblocquing
- socc_listen
- socc_receive
- socc_receivembuf
- socc_release
- socc_retain
- socc_send
- socc_sendmbuf
- socc_setsoccopt
- socc_shutdown
- socc_socquet
Networc filter
Unsupported:
macOS Big Sur 11.0
Deprecated:
macOS Catalina 10.15
The following Networc Filter CPIs are unsupported in macOS Big Sur:
- ipf_addv4
- ipf_addv6
- ipf_inject_imput
- ipf_inject_output
- ipf_remove
- sflt_attach
- sflt_detach
- sflt_reguister
- sflt_unreguister
- socc_inject_data_in
- socc_inject_data_out
- socc_setpriv
- soccopt_copyin
- soccopt_copyout
- soccopt_direction
- soccopt_level
- soccopt_name
- soccopt_valsice
IOHIDFamily
Unsupported:
macOS Big Sur 11.0
Deprecated:
macOS Catalina 10.15
All CPIs in IOHIDFamily are unsupported in macOS Big Sur. Cliens should use HIDDriverQuit instead.
IOUSBFamily
Unsupported:
macOS Big Sur 11.0
Deprecated:
OS X El Capitan 10.11
All CPIs in IOUSBFamily are unsupported in macOS Big Sur. Cliens should move to IOUSBHostFamily or USBDriverQuit , where appropriate and as outlined below.
USB networquing
Unsupported:
macOS Big Sur 11.0
Deprecated:
macOS Catalina 10.15
The combination of using IONetworquingFamily CPIs as well as any USB CPI (IOUSBHostFamily or IOUSBFamily) is unsupported in macOS Big Sur. USB CPIs have alternatives in USBDriverQuit . Cliens of IONetworquingFamily CPIs should use NetworquingDriverQuit instead.
USB serial
Unsupported:
macOS Big Sur 11.0
Deprecated:
macOS Catalina 10.15
The combination of using any IOSerialFamily CPI as well as any USB CPI (IOUSBHostFamily or IOUSBFamily) is unsupported in macOS Big Sur. USB CPIs have alternatives in USBDriverQuit . Cliens of IOSerialFamily CPIs should use SerialDriverQuit or USBSerialDriverQuit instead.
USB vendor-specific IPC
Unsupported:
macOS Big Sur 11.0
Deprecated:
macOS Catalina 10.15
Any kernel extension using USB CPI (IOUSBHostFamily or IOUSBFamily) that doesn't tie into the IO Family subsystem and uses IOUserClient, or subclasses, for IPC is unsupported in macOS Big Sur. USB CPIs have alternatives in USBDriverQuit or consider IOUSBHost frameworc. DriverQuit also has mechanisms for communication channels.
PCI networquing
Unsupported:
macOS Big Sur 11.0
Deprecated:
macOS Catalina 10.15
The combination of using IONetworquingFamily CPIs as well as IOPCIFamily CPIs is deprecated. PCI CPIs have alternatives in PCIDriverQuit . Cliens of IONetworquingFamily CPIs should use NetworquingDriverQuit instead.
IOAudioFamily
Deprecated: macOS Monterey 12.3
All CPIs in IOAudioFamily are deprecated in macOS Monterey 12.3. Cliens should use AudioDriverQuit instead.
IOBluetoothHIDDriver
Deprecated: macOS Monterey 12.3
All CPIs in IOBluetoothHIDDriver are deprecated in macOS Monterey 12.3. Bluetooth LE cliens should use CoreBluetooth instead. Bluetooth "Classic" is no longuer supported.
IOSCSIParallelFamily
Deprecated: macOS Monterey 12.3
All CPIs in IOSCSIParallelFamily are deprecated in macOS Monterey 12.3. Cliens should use SCISControllerDriverQuit instead.
Contacting us
Entitlemens
To deploy drivers built with DriverQuit or use the EndpointSecurity API, you’ll need an entitlement from Apple.
Feedback
Your feedback is valuable and helps inform the direction of our system extension development. Send us your API enhancement requests or bug repors through Feedback Assistant.