70 questions
1
vote
0
answers
43
views
AudioDriverKit example driver stops working
What I do:
Build the the AudioDriverKit example driver from Apple and install to an M1 Ipad.
Allow the driver in the settings.
Open some browser and go to Youtube.
Play some video.
Stop playback and ...
0
votes
0
answers
252
views
MacOS XPC app sandbox mach-lookup exception doesn't work
I am having some issues with running an XPC server on an endpoint security and connecting to it from the sandboxed host application.
I added a mach-lookup entitlement and I get a 159 error (sandbox ...
1
vote
0
answers
26
views
Ownership of OSObject passed to RequestDeviceConfigurationChange
If I call RequestDeviceConfigurationChange with an OBObject created with OSNumber::withNumber, where do I need to call release() on the OBObject object. The documentation of OSNumber::withNumber says ...
1
vote
0
answers
36
views
Difference between super:: and SUPERDISPATCH
What is the difference between for example:
SetPowerState(powerFlags, SUPERDISPATCH);
and
super::SetPowerState(powerFlags);
The documentation for SetPowerState says that super:: should be called at ...
-1
votes
1
answer
144
views
How to create a system extension in Xcode 14.2 - Monterey 12.7.6?
Following the documentation, I'm trying to create a camera extension on macOS Monterey 12.7.6 with Xcode 14.2. It points to somewhere in Xcode new target menu which should contain System Extension >...
1
vote
0
answers
42
views
How to use IOUserAudioBooleanControl from AudioDriverKit
I am trying to add an output mute to an AudioDriverKit driver.
I create the control like this:
ivars->m_output_mute_control = IOUserAudioBooleanControl::Create( in_driver, true, true, ...
1
vote
0
answers
256
views
XPC service and mac application do not connect to each other
I am currently writing an agent for endpoint security. I cannot connect the application and the xpc service. I start the plist with launchctl and then open the application, but it does not connect and ...
3
votes
0
answers
288
views
Unable to Establish Connection to DriverKit System Extension from App
I am currently developing a macOS application that involves communication with a System Extension (DEXT) created using DriverKit. Despite the extension appearing to be correctly installed and ...
-1
votes
1
answer
192
views
Intercepting filesystem calls of other processes on MacOS Ventura
There are various ways to monitor filesystem access on MacOS Ventura, like fs_events or the new Endpoint Security System Extension framework.
Is there a way to intercept and potentially prevent a ...
0
votes
1
answer
197
views
What is the rule of flow orientation when packet tunnel provider and app proxy provider run simultaneously on one mac endpoint?
What is the rule of flow orientation when packet tunnel provider and app proxy provider run simultaneously on one mac endpoint?
There is two applications run on one mac endpoint, one app with app ...
1
vote
0
answers
456
views
macOS network extension - activate vpn provider failed on startVPNTunnel
I'm trying to start the vpn provider from a container application
After I successfully activated the extension, and started the process by sending xpc request to the network extension, I've tried to ...
0
votes
0
answers
87
views
Screen watermark not worked on macOS 12.4, but work fine before macOS 12.4
I developed a screen watermarking program that worked fine before macOS 12.4. After upgrading to 12.4, "System Extension Blocked" pop-up cann't be click, but the other window is ok. the ...
2
votes
1
answer
752
views
Is there a macOS objective c or swift call for me to check if a system extension has been installed?
I have googled and searched here and have come up empty.
I have an application that installs a system extension and I'm resorting to writing to a file when the extension is installed to know.
Is there ...
1
vote
1
answer
601
views
VPN System Extension blocked even though it's notarized, requires user open macOS System Preferences. Is it b/c the app is not on the mac AppStore?
I have an application that we're developing that provides VPN System Extension for macOS. I have successfully built, signed and notarized the app.
When we install the package the user sees this popup:
...
0
votes
1
answer
273
views
Is it possible to read/write another process' memory using the new Apple Endpoint Security Framework?
With kexts we could to vm_read/vm_write, is there a similar way for Endpoint Security?
3
votes
1
answer
523
views
MacOS PCI dext: scatter-gather DMA to application buffer
I am porting a MacOS PCI driver written with IOKit to the new PCIDriverKit framework.
I am able to perform DMA with a contiguous buffer allocated inside the dext (with IOBufferMemoryDescriptor::Create)...
9
votes
1
answer
1k
views
How to memory-map a PCI BAR using PCIDriverKit?
How to memory-map a PCI Base Address Register (BAR) from a PCIDriverKit driver (DEXT) to a userspace application?
Memory-mapping from a driver extension to an application can be accomplished by ...
3
votes
0
answers
208
views
When can I expect OSAction::Cancel handler to be called?
I have a Driverkit driver that takes care of a USB device. The driver unpacks data in the USB packets, and writes the data to buffers that are shared between the app and the driver. The shared buffers ...
3
votes
0
answers
202
views
XCode - How to create bundled CLI tool application
I'm new to XCode, so maybe I'm missing something that is very easy, but how can I create a CLI tool with XCode and bundle it with a system extension I compiled?
I want to create a console app that is ...
3
votes
1
answer
1k
views
How to implement and publish virtual audio driver to Apple App Store?
At 3:38-4:00 in the session video, it seems Baek San Chang says that AudioDriverKit will not be allowed to be used for virtual audio devices
Video: https://developer.apple.com/videos/play/wwdc2021/...
1
vote
1
answer
172
views
IOPCIDevice invalidated when calling from a different user process
I'm working with Apple's DriverKitUserClientSample code as a basis, but I'm trying to use the PCIDriverKit.
In my MyClass::Start method I successfully get the IOPCIDevice from the provider, and call ...
0
votes
1
answer
286
views
Mac Endpoint security - Prevent users from deleting keychain items
I am trying out Endpoint security System extension to prevent users from deleting my app data.
I used "ES_EVENT_TYPE_AUTH_UNLINK" to stop users from deleting app files.
I am trying to figure ...
-1
votes
1
answer
587
views
Codesign does not set correct entitlements
My project consists of main application, an endpoint security extension and a findersync extension. When I try to build it in release mode, the findersync extension is getting built with entitlements ...
1
vote
0
answers
391
views
macOS enable reduce transparency option except for dock and menu bar
I want to make the reduce transparency option enabled across macos except for the dock and menu bar. Is there a way to make that happen in macOS big sur?
3
votes
1
answer
357
views
DEXT crashes on macOS 10.15.7
I successfully built and ran Apple's sample Communicateing Between a DriverKit Extension and a Client App on macOS 11, meaning I can install the DEXT and also control it via it's client.
On macOS 10....
2
votes
2
answers
1k
views
Filtering outgoing TCP traffic to specific IP with macOS Network Extension
I'm using Network Extension to filter the outgoing TCP traffic to specific IP:
import NetworkExtension
import os.log
class FilterDataProvider: NEFilterDataProvider {
override func startFilter(...
5
votes
2
answers
1k
views
Alternative for Virtual file system (VFS) kernel extension on macOS M1
we have developed a kernel extension (KEXT) for a virtual file system (VFS) on macOS to integrate our software with external programs like Adobe InDesign or Microsoft Word. Our software and the KEXT ...
2
votes
1
answer
269
views
Would DriverKit work for custom USB device to control mic volume (no stream)?
I would like to ask for guidance on how to ideally communicate with a custom USB HID device on MacOS.
Use case
Modify a microphone volume via an external USB HID device.
Question
Can I use DriverKit (...
3
votes
1
answer
670
views
CopyPipe of DriverKit IOUSBHostInterface fails with kIOReturnError (0xe00002bc)
For my own edification, I'm trying to read some audio data from a USB audio interface using a DriverKit System Extension.
My IOProviderClass is IOUSBHostInterface. I can successfully Open() the ...
3
votes
1
answer
1k
views
How to get DriverKit System Extension log output
In this part of the 2019 WWDC session demo of DriverKit System Extensions you can see the driver and only the driver's log output being streamed using this command:
log stream --predicate 'sender = &...
1
vote
3
answers
1k
views
Should macOS driverkit system extensions be arm64 or arm64e for Apple Silicon / M1?
I compile a macOS driverkit system extension as a Universal library so that it contains both x86_64 and arm64. One Apple Silicon computer A the driver starts when I attach the USB device. On Apple ...
1
vote
1
answer
411
views
Is it possible to create child IOUSBHostDevice with DriverKit?
With KEXT it was possible to allocate needed class (i.e. IOUSBHostDevice) do init(), attach(), set needed properties and call registerService() of this object.
With DEXT we have got IOService::Create()...
2
votes
1
answer
262
views
What options can be passed to IOService::Terminate in DriverKit
virtual kern_return_t IOService::Terminate(uint64_t options) says you can pass a parameter with options. I wonder what the different options are? The documentation does not say anything.
2
votes
1
answer
709
views
How should provisioning profile with com.apple.developer.driverkit.userclient-access look?
Our request to get the entitlement com.apple.developer.driverkit.userclient-access to access our Driverkit driver with bundle id com.example.driver for the app with bundle id com.example.app was ...
3
votes
1
answer
2k
views
System Extension Validation Fails
im trying to submit a Network Extension activation request but i get this error.
The operation couldn’t be completed. (OSSystemExtensionErrorDomain error 9.)
I looked it up and apparently it means &...
0
votes
0
answers
398
views
How to set environment variables for system extension
I knew the LSEnvironment is for defining environment variables to be set before launching the App.
<key>LSEnvironment</key>
<dict>
<key>PATH</key>
<string>...</...
0
votes
0
answers
472
views
Using built-in dext driver with new VID/PID?
Apple developer documentation says:
If your hardware communicates entirely using standards-based
protocols, you can ship a driver that matches your hardware to one of
the built-in system drivers.
Is ...
5
votes
0
answers
346
views
How to include CocoaPods framework inside a MacOS system extension?
I'm trying to create an application that uses a system extension (NEFilterPacketProvider to be exact). Currently I'm using CocoaPods to manage my dependencies. Everything works fine, up until the ...
1
vote
1
answer
219
views
Should IOBufferMemoryDescriptor be released of free'd?
I am looking at the documentation of IOBufferMemoryDescriptor. It says "... Except where noted, you are also responsible for releasing buffers that you allocate.".
IOBufferMemoryDescriptor::...
2
votes
1
answer
432
views
ioreg list multiple dext
I have written a system extension using DriverKit and USBDriverKit that seems to work well (running with developer mode on, SIP off, ... still waiting for entitlements).
When I plug my USB device and ...
2
votes
2
answers
2k
views
How to map memory in DriverKit using IOMemoryDescriptor::CreateMapping?
I am trying to learn more about DriverKit and memory management, and I read this question:
How to allocate memory in a DriverKit system extension and map it to another process?
And I would like to ...
1
vote
0
answers
127
views
DriverKit - Access to hub for SuspendDevice() equivalent
I have written a DriverKit for a USB device and it seems to work well. It is a port from an existing KExt.
In the KExt I could call SuspendDevice(true) on IOUsbDevice and it would tell the hub to ...
3
votes
1
answer
1k
views
How to programmatically uninstall App that install DriverKit system extension
I have an app that installs a DriverKit system extension when it launches.
If I then drag this app to the Bin from /Applications then I am prompted about that the app also manages a system extension ...
6
votes
2
answers
6k
views
macOS System Extension: Entitlements and Signing with Provisioning Profile
I have a macOS System Extension for a USB device driver. It works when I disable SIP and manually sign using my codesign identity (generated from my Apple ID using "security find-identity" ...
2
votes
0
answers
154
views
How to save configuration from a DriverKit driver
I need to save some configuration from a DriverKit driver. I was reading How to save kext configuration between sessions and in this case it seems that the preferred way is to save the config from a ...
9
votes
3
answers
5k
views
Is there a way to add the Network Extensions capability to a macOS app without joining the Apple Developer Program?
I want to build a macOS app that filters specific network requests so I need to add the NetworkExtensions capability. But after I add a NetworkExtensions capability, I get the following message:
Your ...
2
votes
0
answers
275
views
MacOS Network Extensions equivalent to Kernel extensions?
With the release of Big Sur - Network Kernel extensions are now officially inaccessible. However I cannot find the equivalent functionality I need in the new Network Extensions API.
In my NKE (network ...
1
vote
0
answers
113
views
How to get invoked handleInterruptPacket override method in case of ACM DEXT(IOUserUSBSerial)?
In ACM Dext handleInterruptPacket override method is not getting invoked by the system. Kindly let me know anything missing.
iig file:
class UserUsbACMControl: public IOUserUSBSerial
{
virtual ...
1
vote
1
answer
823
views
Pass Argument From App Delegate to System Extension, Mac OS
I am creating a system extension and bundling it in a Mac app on Mac OS Catalina.
I have had success building the app and requesting activation of the extension from my application delegate (Swift). ...
2
votes
1
answer
305
views
How to access the IOMemoryBufferDescriptor in CompleteAsyncIO, which is sent through AsyncIO on Interrupt EP
I am trying to send request using AsyncIO for Interrupt EP, for AsyncIO I have created IOMemoryBufferDescriptor, once IOMemoryBufferDescriptor, Create is success I used GetAddressRange and stored ...