Open roblabla opened 5 months ago
From the looks of it, this includes:
ES_EVENT_TYPE_NOTIFY_GATEKEEPER_USER_OVERRIDE
eventitem
to profile
.This last bit is annoying, as it will require making breaking changes in the endpoint-sec/endpoint-sec-sys API on a couple functions. They're essentially breaking changes that Apple introduced in macOS 15.
The final MacOS 15 SDK just got released.
Not much has changed compared to the beta. We can start implementation work.
Xcode 16 beta came out at WWDC24, and with it came a new SDK for macOS15.
Apple reformatted the header (and in the process broke a bunch of pretty comments), which made diffing more complicated than in needed to be.
Here's a cleaned up diff
```diff diff --color Documents/foss/MacOSX-SDKs/MacOSX14.5.sdk/usr/include/EndpointSecurity/ESMessage.h /Users/roblabla/Downloads/Xcode-beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/EndpointSecurity/ESMessage.h 89a91 > * ES_EVENT_TYPE_NOTIFY_GATEKEEPER_USER_OVERRIDE 394a397,399 > * @note Not all AUTH_KEXTLOAD events can be delivered. > * In rare circumstances when kextloading is blocking all userspace execution it will be automatically allowed. > * NOTIFY_KEXTLOAD will still be (eventually) delivered. 465a471,480 > // The following types are used in mount events > typedef enum { > ES_MOUNT_DISPOSITION_EXTERNAL, // device is external storage > ES_MOUNT_DISPOSITION_INTERNAL, // device is internal storage > ES_MOUNT_DISPOSITION_NETWORK, // device is a network share > ES_MOUNT_DISPOSITION_VIRTUAL, // device is virtual (dmg or file) > ES_MOUNT_DISPOSITION_NULLFS, // mount uses nullfs, commonly for app translocation > ES_MOUNT_DISPOSITION_UNKNOWN // unable to determine disposition > } es_mount_disposition_t; > 469a485 > * @field disposition The device disposition of the f_mntfromname 474,475c490,492 < struct statfs * _Nonnull statfs; < uint8_t reserved[64]; --- > struct statfs *_Nonnull statfs; > es_mount_disposition_t disposition; /* field available only if message version >= 8 */ > uint8_t reserved[60]; 494,495c511,514 < * < * @note This event type does not support caching. --- > * @field remount_flags The provided remount flags > * @field disposition The device disposition of the f_mntfromname > > * @note This event type does not support caching (notify-only). 498,499c517,520 < struct statfs * _Nonnull statfs; < uint8_t reserved[64]; --- > struct statfs *_Nonnull statfs; > uint64_t remount_flags; /* field available only if message version >= 8 */ > es_mount_disposition_t disposition; /* field available only if message version >= 8 */ > uint8_t reserved[52]; 1028a1051 > * @field instigator The process that instigated the materialize operation. 1030a1054 > * @field instigator_token Audit token of the process that instigated this event. 1035,1038c1059,1063 < es_process_t * _Nonnull instigator; < es_file_t * _Nonnull source; < es_file_t * _Nonnull target; < uint8_t reserved[64]; --- > es_process_t *_Nullable instigator; > es_file_t *_Nonnull source; > es_file_t *_Nonnull target; > audit_token_t instigator_token; // Available in msg versions >= 8. > uint8_t reserved[32]; 1478,1489c1503,1515 < * @field instigator Process that instigated the authentication < * (XPC caller that asked for authentication). < * @field record_type OD record type against which OD is authenticating. < * Typically "Users", but other record types can auth too. < * @field record_name OD record name against which OD is authenticating. < * For record type "Users", this is the username. < * @field node_name OD node against which OD is authenticating. < * Typically one of "/Local/Default", "/LDAPv3/