IOKit

Gain user-space access to hardware devices and drivers using IOKit.

IOKit Documentation

Posts under IOKit tag

60 results found
Post marked as unsolved
167 Views

the value of kDADiskDescriptionVolumeUUIDKey changed after upgrading to BigSur from Catalina

Hi Expert, I found the value of kDADiskDescriptionVolumeUUIDKey changed after upgrading to BigSur from Catalina, so it should not be used to identify a unique machine? Btw: I found there is another unique hardware UUID in "system_profiler SPHardwareDataType"
Asked
Last updated .
Post marked as unsolved
4.4k Views

How to access serial port with connect OTG with iPhone and external device

Hello Guys,I am trying to access serial port of external device, this external device is connected with iPhone with OTG cable.Is it possible to access the information of external device (like Device ID and Device Version) in iPhone ?And is it possible to connect external device with Apple Lightning to USB Camera Adapter (MD821ZM/A) to iPhone.and access serial port.Thanks & Regards,Ammy
Asked
Last updated .
Post marked as unsolved
159 Views

Apple developer transition kit not opening apps!!!

Hi, we are working on new apps on the Apple developer transition kit. We have Big Sur updated to the latest beta. But the Mac mini can't open any app from Adobe or even Blender. Is someone having the same issue? Is there any solution for this? Thank you.
Asked
Last updated .
Post marked as unsolved
149 Views

Mac mini HDMI port: DDC/CI does not work

I connect 2020 Mac mini (Intel UHD Graphics 630 inside) with display monitor and test DDC/CI command. The DDC/CI command can work well via Mac mini Thunderbolt port or Thunderbolt to HDMI adapter. But DDC/CI command does not work on Mac mini "HDMI port" only. Mac mini HDMI port does not send '6E' command ***** address in normally. PS: The DDC/CI also can works well on 13" MacBookPro 2020 Thunderbolt port.
Asked
Last updated .
Post marked as unsolved
1.5k Views

Custom FTDI device ID support on Catalina?

On previous OS versions, the FTDI serial USB bridge VCP driver support came from FTDI via FTDIUSBSerialDriver.kext. This was then replaced by inbox Apple driver AppleUSBFTDI.kext.In both of those cases, custom USB device IDs (VID/PID) could be supported by creating a wrapper kext that declared the custom IDs and referenced the actual underlying driver package/binaries.In Catalina, AppleUSBFTDK.kext is gone, and native FTDI device IDs are now supported by DriverKit.AppleUSBFTDI.dext. The FTDI driver and/or custom ID wrapper KEXTs can be manually loaded using kextutil, but they do not automatically load when the device is plugged in. It seems that DriverKit.AppleUSBFTDI.dext is servicing all such serial USB devices now? But the Info.plist for that .dext only lists the native FTDI device IDs.Is there any guidance on how to support custom IDs for the FTDI devices in Catalina? Creating a dext wrapper does not seem to be the right idea, as I am seeing lots of info stating that .dexts must be part of an application now, that there is no such thing as a standalone dext.Thanks,Rick
Asked
Last updated .
Post marked as unsolved
98 Views

Kernel API to System Extension API roadmap

Does Apple have a roadmap for porting the remaining IOKit families (audio, Bluetooth, etc) and Kernel APIs (such as VFS) to System Extensions/dexts? Having a roadmap will help developers prioritize work.
Asked
Last updated .
Post marked as unsolved
314 Views

Reading EDID data on new Apple M1 devices

Can anyone provide an example (preferably in C++) of how to read the EDID data for the current display? I can do it on an Intel based Mac, the same code does not work on the new Apple M1 devices. The Intel code looks something like: CFMutableDictionaryRef matching = IOServiceMatching("IODisplayConnect"); io_iterator_t iter = 99; kern_return_t err = IOServiceGetMatchingServices( kIOMasterPortDefault, matching, &iter ); io_service_t serv; serv = IOIteratorNext( iter ); CFDictionaryRef displayInfo; displayInfo = IODisplayCreateInfoDictionary( serv, kIODisplayOnlyPreferredName ); ( . . . ) It appears that the new Apple M1 devices have a new video architecture, so the IOServiceMatching / IOServiceGetMatchingServices on longer works.
Asked
Last updated .
Post marked as unsolved
130 Views

Big Sur update missing IOKit library

I have a program I have developed with XCode and used for ALL version of 10.x.x - worked fine. After updating to Big Sur it longer runs. The error I get is: dyld: Library not loaded: /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit What do I do about that ? Jerry
Asked
Last updated .
Post marked as unsolved
122 Views

KextManagerUnloadKextWithIdentifier() is not able to unload kext in BigSur

KextManagerUnloadKextWithIdentifier(kextidentifier) is not able to unload kext in BigSur. I get error code "kOSKextReturnNotPrivileged" for API call KextManagerUnloadKextWithIdentifier KextManagerUnloadKextWithIdentifier(kextidentifier) is able to unload kext in Catalina. Anyone used KextManagerUnloadKextWithIdentifier() with bigsur ?
Asked
by Subbug.
Last updated .
Post marked as unsolved
81 Views

Task policy of an ANSI C program

Hi, I have developed and ported a sequencer to Apple macOS. It is written in ANSI C and uses Gtk+-3.0 (Gimp Toolkit) for UI. This toolkit uses some Cocoa specific backend, note there are different backends for different platforms available. After some research I have found this: https://developer.apple.com/library/archive/documentation/Darwin/Conceptual/KernelProgramming/scheduler/scheduler.html#//apple_ref/doc/uid/TP30000905-CH211-BABCHEEB The function I wanted to use was: thread_policy_set() But the header file doesn't contain it: /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/mach/task_policy.h So was it deprecated? Howto do this, nowadays? 		struct task_category_policy tcatpolicy; 		int ret; 		tcatpolicy.role = TASK_FOREGROUND_APPLICATION; 		if((ret = task_policy_set(mach_task_self(), 			TASK_CATEGORY_POLICY, (thread_policy_t)&tcatpolicy, 			TASK_CATEGORY_POLICY_COUNT)) != KERN_SUCCESS) { 			fprintf(stderr, "set_my_task_policy() failed.\n"); 		} Because the UI animation performance is really bad. The threads interfacing CoreAudio are fine. The UI thread is usually the main thread of the process.
Asked
by joel2001k.
Last updated .
Post marked as solved
255 Views

Question about MacOS exclusive rights to USB devices

How to send SCSI instructions to USB devices on MacOS system? The relevant operation can be seen from the official website: first, the primary port is obtained, then the dictionary is traversed to find the relevant device, then the exclusive permission of the device is obtained through the underlying interface, and finally SCSI instruction is sent and data is returned. When you get exclusive access through ObtainExclusiveAccess, the system always returns kIOReturnBusy, causing the device to be busy. May I ask why the USB device just inserted fails to obtain its exclusive permission, indicating that the device is busy? Is there any way to get exclusive rights from the MacOS system? Hope to get your help or advice, thank you!
Asked
by lwei2.
Last updated .
Post marked as unsolved
76 Views

How to unload a codeless kext in macOS Big Sur?

My company provides a driver that utilizes a codeless kext to prevent the system IOHID driver from taking over any device we support. However, after uninstalling our software, we'd like for the system driver to take over the device again. In previous versions of macOS, after uninstalling our kext, re-enumerating the device would get it to load the default system driver. However in Big Sur that is not working any longer, and the system doesn't take control of the device until after the system has been rebooted. Is there any way to get this to happen without requiring a reboot in Big Sur?
Asked
by guygizmo.
Last updated .
Post marked as unsolved
124 Views

IOHIDManager and "Input Monitoring"

Hello World! I've been finally able to make the jump from legacy hardware (with macOS 10.14) to Big Sur, and even though I'm a Big Fan mostly, I quite dislike a particular problem this has caused me. Like the title says, I make use of IOKit's IOHIDManager interface to receive user inputs. I've used that mostly for game controller inputs and raw mouse movement, but also liked how I'm able to address multiple keyboards and mice independently this way. This is mostly done in C++, so no (direct) access to higher-level APIs. With Big Sur (or Catalina, as far as I'm aware) the user is now prompted to explicitly allow my app to receive keystrokes from all processes as soon as I call IOHIDManagerOpen. That's not my complaint, in fact I agree with macOS, the user should be prompted about this! My problem however is that I'm not interested in what the user is being warned here. I can already guess the answer, but is there a way to avoid this breach of security using the IOHID interfaces and therefore prevent macOS to bother (and possibly scare) the user? I'm aware of Apple's Game Controller framework, but it's difficult to use this while also supporting earlier macOS versions. Many thanks in advance!
Asked
Last updated .
Post marked as unsolved
92 Views

Kernel Debug kit (KDK) file can't be copied in Big Sur 11.1 Beta 2 (20C5061b)

In Big Sur 11.1 Beta 2 (20C5061b) we can't copy kernel development file to required location - /System/Library/Kernels/ the location is READ-ONLY here. Even with SIP OFF we get error. sudo cp /Library/Developer/KDKs/KDK11.120C5061b.kdk/System/Library/Kernels/kernel.development /System/Library/Kernels/ cp: /System/Library/Kernels/kernel.development: Read-only file system Tried copying in recovery mode too. Same error persists. "Read-only file system"
Asked
by tusharh64.
Last updated .
Post marked as unsolved
85 Views

DS1104Z (upgraded Rigol DS1054z) - Connecting to probe from Big Sur

I need to run a series of tests on a KDE direct drone motor and wondering what the best way to communicate over LAN with the Rigol Oscilloscope/Probe from my Macbook Pro. Are there any best practices using xcode for connecting to scope and issuing LXI commands? I already have a python application to set the run variables and execute, now I am looking for the best way to retrieve the deep memory from DS1104Z.
Asked
by dekx.
Last updated .