Post

Replies

Boosts

Views

Activity

Reply to Need an assistance to fetch the PCI devices information using PCIDrivers
We have a mass storage device which is communicating with the MacOS. We are using libusb-1.0.23, IOKit and IOUSBHost to send the commands and It works fine for USB3.0 but it hangs and/or crashes when we try to connect using USB4.0. NVMeSMARTLibExternal.h is a header file we are using from IOKit library to get SMART data from USB4.0. Do you have any pointers which might help us investigate the issue further ? Have you run into such a scenario before. We are fine sending only 1 command at time for now. Addressing multiple command issue is not a priority for me yet. Also, I'm not able to fin d a Discord server you mentioned. Can you please share a link or help with the correct name of a server?
Topic: App & System Services SubTopic: Drivers Tags:
Jan ’24
Reply to Need an assistance to fetch the PCI devices information using PCIDrivers
Hi @baekalfen, The information you provided was really helpful. Thanks for the same! We have built the latest version of xNVME cli from the sources " https://xnvme.io/" and we are trying to use it on MacOS Sonoma with a Prograde Device CFExpress connected via a Thunderbolt/USB4.0 interface. Mac OS is able to access this device, by reading and writing data to it. Also diskutil is able to read it. But when we use the xnvme cli, we are not able to list the devices available. PFA, attachments includes some screenshots for the same. We are trying to understand why this may be the case, since OS is able to access it. Let us know if we can coordinate offline.
Topic: App & System Services SubTopic: Drivers Tags:
Feb ’24
Reply to Couldn't read USB device endpoints on MacOS15.3
Hi Kevin, Yes, We have included the com.apple.security.device.usb entitlement and following are the details- codesign -d --entitlements :- "Refresh Pro.app/Contents/Library/LaunchServices/com.prograde.pgdrefreshpro.helpertool" Executable=/Applications/Refresh Pro.app/Contents/Library/LaunchServices/com.prograde.pgdrefreshpro.helpertool warning: Specifying ':' in the path is deprecated and will not work in a future release <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>com.apple.security.cs.allow-dyld-environment-variables</key><true/><key>com.apple.security.cs.allow-jit</key><true/><key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/><key>com.apple.security.cs.disable-library-validation</key><true/><key>com.apple.security.device.usb</key><true/></dict></plist>``` codesign -d --entitlements :- "Refresh Pro.app/" Executable=/Applications/Refresh Pro.app/Contents/MacOS/Refresh Pro warning: Specifying ':' in the path is deprecated and will not work in a future release <?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "https://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict><key>com.apple.security.cs.allow-dyld-environment-variables</key><true/><key>com.apple.security.cs.allow-jit</key><true/><key>com.apple.security.cs.allow-unsigned-executable-memory</key><true/><key>com.apple.security.cs.disable-library-validation</key><true/><key>com.apple.security.device.usb</key><true/></dict></plist> Would it help if we share our dmg as well? Can you please share your email or any other way to send that? Thanks.
Topic: App & System Services SubTopic: Core OS Tags:
Feb ’25
Reply to Couldn't read USB device endpoints on MacOS15.3
Hi Kevin, Thanks for the links. One thing to mention is that we are using electron js to bundle our app so the notarization process is managed by electron and we are not involving XCode directly. We were missing a step where we were not embedding the provisioning profile in our app, so we created one with default entitlements using our developer account and downloaded that. Then we provided this provisioning profile and the entitlements to the electron build process which embedded the provisioning profile in our app. We also checked the provisioning profile with the commands provided in the link. But, this is also not working for us. We have created a bug with our app's dmg and the provisioning profile. Link: https://feedbackassistant.apple.com/feedback/16538455 FB16538455 (Contd: Couldn't read USB device endpoints on MacOS15.3) Thanks again for looking into this.
Topic: App & System Services SubTopic: Core OS Tags:
Feb ’25
Reply to Couldn't read USB device endpoints on MacOS15.3
Hi Kevin We spent some time to create a provisioning profile which contains all these entitlements but are struggling here. We tried 2 approaches. 1- Creating provisioning profile from developer account In our developer account, we created a provisioning profile using our bundle id "com.prograde.pgdrefreshpro". In the "Entitlements" section we could find only 2 options When we go to "Identifiers" and edit the Bundle ID we are using, we could see a list of capabilities we can enable. Which should we select for getting "com.apple.security.device.usb" entitlement in our provisioning profile? Will we have to request an entitlement here? 2- Selecting Automatic signing in XCode. Since we were not using XCode for building our application, we created a dummy project. We selected "App" under "Applications" Then we provided the following details: "Product Name": pdgrefreshpro "Organization Identifier": "com.prograde" "Bundle Identifier": "com.prograde.pgdrefreshpro" The project got created and we edited the pdgrefreshpro.entitlements as follows: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>com.apple.security.cs.allow-jit</key> <true/> <key>com.apple.security.cs.allow-unsigned-executable-memory</key> <true/> <key>com.apple.security.cs.allow-dyld-environment-variables</key> <true/> <key>com.apple.security.cs.disable-library-validation</key> <true/> <key>com.apple.security.device.usb</key> <true/> <key>com.apple.security.app-sandbox</key> <true/> </dict> </plist> Then we went to "Signing & Capabilities" and selected "Automatically manage signing". But we are seeing "None Required" under "Provisioning Profile" section. We also couldn't find the provisiong profile in this folder ~/Library/Developer/Xcode/UserData/Provisioning Profiles/ Are we missing something here? Thanks for your patience!
Topic: App & System Services SubTopic: Core OS Tags:
Feb ’25
Reply to Couldn't read USB device endpoints on MacOS15.3
Hi Kevin Sorry for taking some time to respond, we were facing some notarization issues. That got resolved today. We tried adding the NSRemovableVolumesUsageDescription property key in our electron app. With this, it is working! We are getting a pop-up requesting file access after which, the deny error is no longer coming. Thanks for pointing us to the right direction! Going forward, we'll be using this property key during our notarization. Thanks a lot for the help. We'll do some more testing on our side and will let you know if we encounter any problems.
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’25
Reply to Couldn't read USB device endpoints on MacOS15.3
Hi Kevin We tried creating a notarized build after this fix. However, we are facing a prompt on macOS while opening our Application. Attaching screenshot. To debug this, we reverted our code to a release which was not giving us this prompt(removed the fix as well for now). We then created a notarized dmg again. With this, the prompt started showing up here as well. When we directly run the dmg in the dev machine, it does not give us the prompt. But if we download it from somewhere and run, the prompt comes up even in dev machine. We executed some commands to verify the notarization: spctl --assess -vv /Applications/Refresh\ Pro.app On the dev machine, the output was "accepted" but on other machine, it was "rejected". Output as follows: /Applications/Refresh Pro.app: rejected source=Notarized Developer ID origin=Developer ID Application: Prograde Digital Incorporated (*******) xcrun stapler validate /Applications/Refresh\ Pro.app On dev machine, we executed this command and the output is as follows. Processing: /Applications/Refresh Pro.app The validate action worked! codesign -vvv --deep --strict /Applications/Refresh\ Pro.app/ /Applications/Refresh Pro.app: valid on disk /Applications/Refresh Pro.app: satisfies its Designated Requirement I believe this issue is not linked to the new property added as we tried this on reverted code as well. We have created a bug attaching the dmg. Please suggest anything we can try to make the release out the door. Bug link- https://feedbackassistant.apple.com/feedback/16811025 Thanks again for helping us through this.
Topic: App & System Services SubTopic: Core OS Tags:
Mar ’25