Post

Replies

Boosts

Views

Activity

How to match ICA driver to device with plist files ?
I did it with older OSX versions, but can't do on Ventura Vendor and product IDS are defined in DeviceMatchingInfo.plist: <key>usb</key> <dict> <key>IOUSBDevice</key> <array> <dict> <key>Product Identification</key> <string>TravelScan Pro</string> <key>device events</key> <array> <string>scan</string> </array> <key>device type</key> <string>scanner</string> <key>idProduct</key> <integer>18455</integer> <key>idVendor</key> <integer>7628</integer> </dict> </array> </dict> There is also DeviceInfo.plist with scanner properties. Additionally I tried to insert following keys into the project info.plist: <key>IOKitPersonalities</key> <dict> <key>travelscanpro</key> <dict> <key>IOClass</key> <string>travelscanpro</string> <key>IOProviderClass</key> <string>IOUSBDevicxe</string> <key>idProduct</key> <string>0x4817</string> <key>idVendor</key> <string>0x1DCC</string> </dict> </dict> as well as com.apple.developer.driverkit.transport.usb key with Vendor ID into entitlemens file, but no changes, the scanner is not shown in ImageCapture.app. There are log messages on scanner connect: icdd default Device DB | Creating local devices icdd <Missing Description> default Sandbox: icdd(549) allow file-read-data /Library/Image Capture/Devices kernel <Missing Description> default Sandbox: icdd(549) allow file-read-data /Library/Image Capture/Devices/AbcTr.app/Contents/Resources/DeviceMatchingInfo.plist kernel <Missing Description> default Sandbox: icdd(549) allow file-read-data /Library/Image Capture/Devices/AbcTr.app/Contents/Resources/DeviceInfo.plist kernel icdd default Device DB | Creating bonjour devices icdd <Missing Description> default Sandbox: icdd(549) allow file-read-data /Library/Image Capture/Devices kernel <Missing Description> default Sandbox: icdd(549) allow file-read-data /Library/Image Capture/Devices/AbcTr.app/Contents/Resources/DeviceMatchingInfo.plist kernel icdd default => [Matching] | [ 0x00,0x00,0x00 ] icdd icdd default Added | 0x10000007 - [USB][ TravelScan Pro ] ( 0, 0, 0) @ 0x2400000 | icdd icdd default Autolaunch | 00000000-0000-0000-0000-000000000030 => (null) icdd ccid error Failed to find AppleUSBAlternateServiceRegistryID. com.apple.ifdreader What does mean the last message ? I could not find any useful info. The application can be launched manually
0
0
385
Nov ’23
Can't use <memory> <vector> and some other includes with DriverKit framework
I have XCode 15.0 project with system extension target (c++), and can't include some standard headers, like or . Compilation error: __debug file not found. Base SDK and Supported platforms: DriverKit. Reinstallation of XCode didn't help, as well as manual copy of __debug file into framework include folder. No problems with other C++ targets (command line tools, etc) Please reply if you have identical projects, but without compilation errors. May be that is my system configuration problem and not common DriverKit feature ?
1
0
573
Nov ’23
Strange behavior of IOServiceNameMatching(..)
I'm trying to find extension by name with following code: static const char* dextIdentifier = "someDextName"; CFMutableDictionaryRef cfd = IOServiceNameMatching(dextIdentifier); int nMatch = (int)CFDictionaryGetCount(cfd); printf("nMatch=%d\n",nMatch); const void *keys[nMatch], *values[nMatch]; CFDictionaryGetKeysAndValues(cfd, keys, values); for(int e=0; e < nMatch; e++) { char key[100] = "", value[100] = ""; if(CFStringGetCString(reinterpret_cast<CFStringRef>(keys[e]), key, sizeof(key), kCFStringEncodingASCII)) { printf("Key: %s\n",key); } if(CFStringGetCString(reinterpret_cast<CFStringRef>(values[e]), value, sizeof(value), kCFStringEncodingASCII)) { printf("Value: %s\n",key); } } Regardless of dextIdentifier value IOServiceNameMatching always returns single record (nMatch = 1), where key = "IONameMatch" and value = It doesn't matter whether the specified extension name exists or not There is the single extension in the system, according to 'systemextensionsctl list' command
1
0
621
Nov ’23
DriverKit XCode compilation errors
I'm working on dext project (c++), Base SDK and Supported Platforms are set to DriverKit. #include causes errors: error "The iostreams library is not supported since libc++ has been configured without support for localization." error "<locale.h> is not supported since libc++ has been configured without support for localization." Also it's not possible to define custom log object: undeclared identifier 'os_log_create'. <os/log.h> included and os_log function is compiled correct. macOS as additional SDK did not help. Thanks a lot for any hint.
0
0
381
Nov ’23
'assert.h' file not found
I'm trying to build C project with XCode 15.0, but always get error 'assert.h' file not found. I tried to clean and restart XCode, reinstall XCode and reboot, set different framework versions and project formats. I found all entries of stdarg.h with Finder and made sure, that all directories, containing stdarg.h, contain also assert.h, but stdarg.h includes are resolved, assert.h - not. How could this be ? Many thanks for any help. Ventura 13.6, M2, Command line tools version 2397
1
1
1.5k
Oct ’23