Post

Replies

Boosts

Views

Activity

Reply to How do I get MacOS to stop using my SecurityAgentPlugin from the StagedPlugins folder?
I see these lines in the console log: SecurityAgent debug 10:16:53.724914-0500 SecurityAgent Location /Library/Security/SecurityAgentPlugins/iAuthAgentMechanism.bundle is not under SIP iAuthAgentMechanism.bundle is signed with the same Developer ID as the one in StagedPlugins. SecurityAgent debug 10:16:53.725308-0500 SecurityAgent The new safe location: /Library/Security/SecurityAgentPlugins/StagedPlugins/iAuthAgentMechanism.bundle
Topic: Privacy & Security SubTopic: General Tags:
Jun ’26
Reply to SMAppService.daemon and AirWatch installation
The installation script has to update an endpoint security extension, so it first copies a signed app with the extension embedded in it and then executes that app and suspends security checks until the main app is installed. Then it runs the main app as a command line tool. The first app that updates the security extension is then removed. The two steps are needed because the endpoint security extension prevents modifying the main app. When the main app acts in "install" mode, it configures a daemon and an agent. It configures a security agent plugin and updates authorization db to use it. The main app and security agent plugin communicate with the daemon using XPC. A managed policy is installed that gives the app and the endpoint security extension full disk access.
Topic: App & System Services SubTopic: Core OS Tags:
Apr ’26
Reply to LaunchAgent (Mac) as peripheral doesn't show a pairing request.
More on how pairing works. I assume that CoreBluetooth would require a pairing for each characteristic as two apps could configure their own characteristic. However that assumption is probably incorrect. If pairing is only done at the peripheral level, then it would make sense that my code receives the Encryption is insufficient error. However, the correct error from the peripheral end would be lnsufficient Authentication (I have seen this error in my code as well) I am no expert on Bluetooth pairing but it would seem that there should be a mechanism to pair on a characteristic basis in order for CoreBluetooth to support different apps providing GATT for the same Mac.
Feb ’26
Reply to LaunchAgent (Mac) as peripheral doesn't show a pairing request.
Since my original post, I have a gui launch agent now that acts as a bluetooth peripheral. While it doesn't present a window, it does present a system menu bar item. I have added the AssociatedBundleIdentifiers in my plists used by my SMAppService.agent call. My launch agent advertises a service with a characteristic that uses notifyEncryptionRequired. After these changes, my iPhone app still gets this error when calling setNotifyValue: Error Domain=CBATTErrorDomain Code=15 "Encryption is insufficient." The error is reported in the didUpdateNotificationStateFor delegate callback.
Feb ’26
Reply to scan response
I have the same issue with macOS 26. Not sure about earlier OS versions. You may consider using a short form UUID instead (four hex bytes) from the private range if possible. Otherwise, you would need to add a read characteristic for the central to query the name.
Topic: App & System Services SubTopic: Core OS Tags:
Nov ’25
Reply to How do I get MacOS to stop using my SecurityAgentPlugin from the StagedPlugins folder?
macOS 26.6 Beta (25G5043d)
Topic: Privacy & Security SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to How do I get MacOS to stop using my SecurityAgentPlugin from the StagedPlugins folder?
If I roll CURRENT_PROJECT_VERSION up, the new version does get used but the old version remains in StagedPlugins.
Topic: Privacy & Security SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to How do I get MacOS to stop using my SecurityAgentPlugin from the StagedPlugins folder?
I see these lines in the console log: SecurityAgent debug 10:16:53.724914-0500 SecurityAgent Location /Library/Security/SecurityAgentPlugins/iAuthAgentMechanism.bundle is not under SIP iAuthAgentMechanism.bundle is signed with the same Developer ID as the one in StagedPlugins. SecurityAgent debug 10:16:53.725308-0500 SecurityAgent The new safe location: /Library/Security/SecurityAgentPlugins/StagedPlugins/iAuthAgentMechanism.bundle
Topic: Privacy & Security SubTopic: General Tags:
Replies
Boosts
Views
Activity
Jun ’26
Reply to Get a launch agent to use Bluetooth
Does the launch agent need to then launch a GUI App? Can the launch agent get the permission to use bluetooth or does that require a GUI App?
Topic: General SubTopic:
Core Bluetooth Q&A
Replies
Boosts
Views
Activity
Jun ’26
Reply to SMAppService.daemon and AirWatch installation
I worked around this by running the command line app using launchctl asuser 501 xxx
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Apr ’26
Reply to All Safari Traffic Fails on VPN
I went to my system settings, Network/VPN & Filters. Looks like this: Disabling GlobalProtect made Safari work again.
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Apr ’26
Reply to All Safari Traffic Fails on VPN
I have the exact same problem just today after updating to the latest 26.5 Beta. Chrome works though. Using Feedback assistant on the same Mac fails as it can't connect either - hangs when authenticating.
Topic: Safari & Web SubTopic: General Tags:
Replies
Boosts
Views
Activity
Apr ’26
Reply to SMAppService.daemon and AirWatch installation
My OS is 26.5
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Apr ’26
Reply to SMAppService.daemon and AirWatch installation
The installation script has to update an endpoint security extension, so it first copies a signed app with the extension embedded in it and then executes that app and suspends security checks until the main app is installed. Then it runs the main app as a command line tool. The first app that updates the security extension is then removed. The two steps are needed because the endpoint security extension prevents modifying the main app. When the main app acts in "install" mode, it configures a daemon and an agent. It configures a security agent plugin and updates authorization db to use it. The main app and security agent plugin communicate with the daemon using XPC. A managed policy is installed that gives the app and the endpoint security extension full disk access.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Apr ’26
Reply to SMAppService.daemon and AirWatch installation
Yes. The app is run as a command line tool with an argument telling it to perform an install. That causes the calls with SMAppService.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Apr ’26
Reply to LaunchAgent (Mac) as peripheral doesn't show a pairing request.
More on how pairing works. I assume that CoreBluetooth would require a pairing for each characteristic as two apps could configure their own characteristic. However that assumption is probably incorrect. If pairing is only done at the peripheral level, then it would make sense that my code receives the Encryption is insufficient error. However, the correct error from the peripheral end would be lnsufficient Authentication (I have seen this error in my code as well) I am no expert on Bluetooth pairing but it would seem that there should be a mechanism to pair on a characteristic basis in order for CoreBluetooth to support different apps providing GATT for the same Mac.
Replies
Boosts
Views
Activity
Feb ’26
Reply to LaunchAgent (Mac) as peripheral doesn't show a pairing request.
All the above steps have been done. Everything works when the characteristic does not have the notifyEncryptionRequired property. This works when run as an app or as a launch agent. When using notifyEncryptionRequired running as an app causes the central to receive the Encryption is insufficient. This also happens when run as a launch agent.
Replies
Boosts
Views
Activity
Feb ’26
Reply to LaunchAgent (Mac) as peripheral doesn't show a pairing request.
Since my original post, I have a gui launch agent now that acts as a bluetooth peripheral. While it doesn't present a window, it does present a system menu bar item. I have added the AssociatedBundleIdentifiers in my plists used by my SMAppService.agent call. My launch agent advertises a service with a characteristic that uses notifyEncryptionRequired. After these changes, my iPhone app still gets this error when calling setNotifyValue: Error Domain=CBATTErrorDomain Code=15 "Encryption is insufficient." The error is reported in the didUpdateNotificationStateFor delegate callback.
Replies
Boosts
Views
Activity
Feb ’26
Reply to LaunchAgent (Mac) as peripheral doesn't show a pairing request.
I don't set LimitLoadToSessionType. My launch agent is not a GUI app. I'm thinking that may be an issue.
Replies
Boosts
Views
Activity
Nov ’25
Reply to scan response
I have the same issue with macOS 26. Not sure about earlier OS versions. You may consider using a short form UUID instead (four hex bytes) from the private range if possible. Otherwise, you would need to add a read characteristic for the central to query the name.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Nov ’25