;;; Copyright (c) 2020-2025 Apple Inc.  All Rights reserved.
;;;
;;; WARNING: The sandbox rules in this file currently constitute
;;; Apple System Private Interface and are subject to change at any time and
;;; without notice.
;;;
(version 1)
(import "system.sb")
(disable-full-symbolication)
(deny default)
(deny file-map-executable process-info* process-info-codesignature nvram* dynamic-code-generation darwin-notification-post iokit-get-properties syscall* fs-snapshot*)
(deny syscall-unix (with partial-symbolication))
(allow syscall-unix
    (syscall-number SYS_abort_with_payload)
    (syscall-number SYS_exit)
    (syscall-number SYS_kdebug_trace64)
    (syscall-number SYS_kdebug_typefilter)
    (syscall-group-kevent)
    (syscall-number SYS_socket)
    (syscall-number SYS_os_fault_with_payload)
    (syscall-number SYS_kqueue_workloop_ctl)
    (syscall-number SYS_sigsuspend_nocancel)
    (syscall-number SYS_workq_kernreturn)
    (syscall-number SYS_proc_info)
    (syscall-number SYS_fileport_makefd)
    (syscall-number SYS_fileport_makeport)
    (syscall-number SYS_gettimeofday)
    (syscall-number SYS_issetugid)
    (syscall-number SYS_open_nocancel)
    (syscall-number SYS_connect)
    (syscall-number SYS_getgid)
    (syscall-number SYS_getuid)
    (syscall-number SYS_sendmsg_x)
    (syscall-number SYS_sendto)
    (syscall-number SYS_shm_open)
    (syscall-number SYS_access)
    (syscall-number SYS_getrusage)
    (syscall-number SYS_madvise)
    (syscall-number SYS_getentropy)
    (syscall-number SYS_setsockopt)
    (syscall-number SYS___mac_syscall)
    (syscall-group-bsdthread)
    (syscall-group-pthread-cv)
    (syscall-group-pthread-locks)
    (syscall-group-ulock)
    (syscall-number SYS___disable_threadsignal)
    (syscall-number SYS___pthread_kill)
    (syscall-number SYS___pthread_sigmask)
    (syscall-number SYS___semwait_signal)
    (syscall-number SYS___semwait_signal_nocancel)
    (syscall-number SYS_sigaction)
    (syscall-number SYS_sigprocmask)
    (syscall-number SYS_thread_selfid)
    (syscall-number SYS_mmap)
    (syscall-number SYS_mprotect)
    (syscall-number SYS_munmap)
    (syscall-group-close)
    (syscall-group-fcntl)
    (syscall-group-read)
    (syscall-group-recv)
    (syscall-group-write)
    (syscall-number SYS_dup)
    (syscall-number SYS_fchmod)
    (syscall-number SYS_fchown)
    (syscall-number SYS_fgetattrlist)
    (syscall-number SYS_fgetxattr)
    (syscall-number SYS_flistxattr)
    (syscall-number SYS_flock)
    (syscall-number SYS_freadlink)
    (syscall-number SYS_fremovexattr)
    (syscall-number SYS_fsetattrlist)
    (syscall-number SYS_fsetxattr)
    (syscall-number SYS_fsgetpath)
    (syscall-number SYS_fstat64)
    (syscall-number SYS_fstatat64)
    (syscall-number SYS_fstatfs64)
    (syscall-number SYS_fsync)
    (syscall-number SYS_ftruncate)
    (syscall-number SYS_getattrlist)
    (syscall-number SYS_getattrlistbulk)
    (syscall-number SYS_getdirentries64)
    (syscall-number SYS_getfsstat64)
    (syscall-number SYS_getrlimit)
    (syscall-number SYS_getxattr)
    (syscall-number SYS_lseek)
    (syscall-number SYS_lstat64)
    (syscall-number SYS_mkdir)
    (syscall-number SYS_mkdirat)
    (syscall-number SYS_mkfifoat)
    (syscall-number SYS_mknodat)
    (syscall-number SYS_readlink)
    (syscall-number SYS_rename)
    (syscall-number SYS_renameat)
    (syscall-number SYS_renameatx_np)
    (syscall-number SYS_rmdir)
    (syscall-number SYS_setrlimit)
    (syscall-number SYS_shutdown)
    (syscall-number SYS_socketpair)
    (syscall-number SYS_stat64)
    (syscall-number SYS_statfs64)
    (syscall-number SYS_symlinkat)
    (syscall-number SYS_truncate)
    (syscall-number SYS_unlink)
    (syscall-number SYS_getsockopt)
    (syscall-number SYS_recvmsg_x)
    (syscall-number SYS___pthread_fchdir)
    (syscall-number SYS_bind)
    (syscall-number SYS_openbyid_np)
    (syscall-number SYS_csrctl)
    (syscall-number SYS_getaudit_addr)
    (syscall-number SYS_getpriority)
    (syscall-number SYS_mlock)
    (syscall-number SYS_munlock)
    (syscall-number SYS_proc_rlimit_control)
    (syscall-number SYS_work_interval_ctl)
    (syscall-number SYS_faccessat)
    (syscall-number SYS_persona)
    (syscall-number SYS_pathconf)
    (syscall-number SYS_accept)
    (syscall-number SYS_geteuid)
    (syscall-number SYS_sigaltstack)
    (syscall-number SYS_msync)
    (syscall-number SYS_setpriority)
    (syscall-number SYS_kdebug_trace_string)
    (syscall-number SYS_getegid)
    (syscall-number SYS_gettid)
    (syscall-number SYS_getpeername)
    (syscall-number SYS_getsockname)
    (syscall-number SYS_kqueue)
    (syscall-number SYS_pipe)
    (syscall-number SYS_select)
    (syscall-number SYS_select_nocancel)
    (syscall-group-send)
)
(deny syscall-mach (with partial-symbolication))
(allow syscall-mach
    (machtrap-number MSC__kernelrpc_mach_port_allocate_trap)
    (machtrap-number MSC__kernelrpc_mach_port_construct_trap)
    (machtrap-number MSC__kernelrpc_mach_port_deallocate_trap)
    (machtrap-number MSC__kernelrpc_mach_port_destruct_trap)
    (machtrap-number MSC__kernelrpc_mach_port_extract_member_trap)
    (machtrap-number MSC__kernelrpc_mach_port_get_attributes_trap)
    (machtrap-number MSC__kernelrpc_mach_port_guard_trap)
    (machtrap-number MSC__kernelrpc_mach_port_insert_member_trap)
    (machtrap-number MSC__kernelrpc_mach_port_insert_right_trap)
    (machtrap-number MSC__kernelrpc_mach_port_mod_refs_trap)
    (machtrap-number MSC__kernelrpc_mach_port_request_notification_trap)
    (machtrap-number MSC__kernelrpc_mach_port_type_trap)
    (machtrap-number MSC__kernelrpc_mach_vm_allocate_trap)
    (machtrap-number MSC__kernelrpc_mach_vm_deallocate_trap)
    (machtrap-number MSC__kernelrpc_mach_vm_map_trap)
    (machtrap-number MSC__kernelrpc_mach_vm_protect_trap)
    (machtrap-number MSC__kernelrpc_mach_vm_purgable_control_trap)
    (machtrap-number MSC_host_create_mach_voucher_trap)
    (machtrap-number MSC_host_self_trap)
    (machtrap-number MSC_iokit_user_client_trap)
    (machtrap-number MSC_mach_generate_activity_id)
    (machtrap-number MSC_mach_msg2_trap)
    (machtrap-number MSC_mach_msg_overwrite_trap)
    (machtrap-number MSC_mach_msg_trap)
    (machtrap-number MSC_mach_reply_port)
    (machtrap-number MSC_mach_vm_reclaim_update_kernel_accounting_trap)
    (machtrap-number MSC_mach_voucher_extract_attr_recipe_trap)
    (machtrap-number MSC_mk_timer_create)
    (machtrap-number MSC_mk_timer_destroy)
    (machtrap-number MSC_pid_for_task)
    (machtrap-number MSC_semaphore_signal_all_trap)
    (machtrap-number MSC_semaphore_signal_trap)
    (machtrap-number MSC_semaphore_timedwait_trap)
    (machtrap-number MSC_semaphore_wait_signal_trap)
    (machtrap-number MSC_semaphore_wait_trap)
    (machtrap-number MSC_swtch_pri)
    (machtrap-number MSC_syscall_thread_switch)
    (machtrap-number MSC_task_self_trap)
    (machtrap-number MSC_thread_get_special_reply_port)
    (machtrap-number MSC_thread_self_trap)
)
(allow process-info-codesignature)
(allow process-info-dirtycontrol (target self))
(allow process-info-setcontrol (target self))
(allow process-info-pidinfo)
(deny sysctl*)
(deny sysctl-read)
(allow sysctl-read
    (sysctl-name
        "hw.pagesize_compat"
        "kern.osversion"
        "machdep.tsc.frequency"
        "sysctl.name2oid"
        "kern.osproductversion"
        "kern.maxfilesperproc"
        "hw.nperflevels"
        "hw.perflevel0.cpusperl2"
        "hw.perflevel0.l2cachesize"
        "hw.perflevel0.logicalcpu"
        "hw.perflevel0.name"
        "hw.perflevel0.physicalcpu_max"
        "hw.perflevel1.cpusperl2"
        "hw.perflevel1.l2cachesize"
        "hw.perflevel1.logicalcpu"
        "hw.perflevel1.name"
        "hw.perflevel1.physicalcpu_max"
        "kern.osrelease"
        "hw.cpufamily"
        "hw.cpusubfamily"
        "hw.optional.avx1_0"
        "hw.optional.avx2_0"
        "hw.optional.avx512f"
        "hw.optional.sse2"
        "hw.optional.sse3"
        "hw.optional.sse4_1"
        "hw.optional.sse4_2"
        "machdep.ptrauth_enabled"
        "sysctl.proc_translated"
        "hw.busfrequency_max"
        "hw.memsize"
        "hw.ncpu"
        "kern.bootargs"
        "hw.cachelinesize"
        "hw.logicalcpu"
        "hw.machine"
        "hw.pagesize"
        "vm.page_wire_count"
        "kern.ipc.maxrecvmsgx"
        "kern.ipc.maxsendmsgx"
        "kern.ipc.maxsockbuf"
        "kern.hv_vmm_present"
        "kern.willshutdown"
        "hw.model"
        "kern.hv_support"
        "security.mac.sandbox.sentinel"
        "hw.logicalcpu_max"
        "hw.physicalcpu_max"
        "hw.physicalcpu"
    )
    (sysctl-name-prefix "sysctl.oidfmt.")
    (sysctl-name-prefix "net.routetable.")
)
(deny mach-lookup (xpc-service-name-prefix ""))
(allow mach-lookup
    (global-name "com.apple.lsd.mapdb")
    (global-name "com.apple.lsd.modifydb")
    (global-name "com.apple.CoreAuthentication.agent")
    (global-name "com.apple.ctkd.token-client")
    (global-name "com.apple.securityd.systemkeychain")
    (global-name "com.apple.securityd.xpc")
    (global-name "com.apple.NetworkSharing")
    (global-name "com.apple.vswitchd.vhost.user.xpc")
    (global-name "com.apple.dpdkswitchd.vhost.user.xpc")
    (global-name "com.apple.atmfwdd.vhost.user.xpc")
    (xpc-service-name "com.apple.Virtualization.PluginLoader")
    (global-name "com.apple.Virtualization.VirtualMachine")
    (global-name "com.apple.remoted.virtualization")
)
(deny file-read* (with no-report)
    (subpath "/Users")
)
(allow file-read-metadata
    (literal "/usr")
)
(allow file-read*
    (literal "/Library/Application Support/CrashReporter/SubmitDiagInfo.domains")
)
(allow mach-bootstrap
    (apply-message-filter (with report)
        (deny mach-message-send)
        (allow mach-message-send (message-number
            207
            301
            800
            804
            802
            803
            805
            )
        )
    )
)
(deny syscall-mig (with partial-symbolication))
(allow syscall-mig
    (kernel-mig-routine clock_get_time)
    (kernel-mig-routine host_get_io_master)
    (kernel-mig-routine host_request_notification)
    (kernel-mig-routine io_connect_method)
    (kernel-mig-routine io_connect_method_var_output)
    (kernel-mig-routine io_connect_set_properties)
    (kernel-mig-routine io_iterator_is_valid)
    (kernel-mig-routine io_iterator_next)
    (kernel-mig-routine io_iterator_reset)
    (kernel-mig-routine io_object_conforms_to)
    (kernel-mig-routine io_registry_entry_create_iterator)
    (kernel-mig-routine io_registry_entry_from_path)
    (kernel-mig-routine io_registry_entry_get_child_iterator)
    (kernel-mig-routine io_registry_entry_get_parent_iterator)
    (kernel-mig-routine io_registry_entry_get_property_bin_buf)
    (kernel-mig-routine io_registry_entry_get_property_bytes)
    (kernel-mig-routine io_server_version)
    (kernel-mig-routine io_service_close)
    (kernel-mig-routine io_service_get_matching_service)
    (kernel-mig-routine io_service_get_matching_service_bin)
    (kernel-mig-routine io_service_get_state)
    (kernel-mig-routine io_service_open_extended)
    (kernel-mig-routine io_service_wait_quiet)
    (kernel-mig-routine mach_exception_raise)
    (kernel-mig-routine mach_memory_entry_ownership)
    (kernel-mig-routine mach_port_get_context_from_user)
    (kernel-mig-routine mach_port_is_connection_for_service)
    (kernel-mig-routine mach_port_request_notification)
    (kernel-mig-routine mach_port_set_attributes)
    (kernel-mig-routine mach_vm_map_external)
    (kernel-mig-routine mach_vm_remap_external)
    (kernel-mig-routine mach_vm_remap_new_external)
    (kernel-mig-routine mach_voucher_attr_command)
    (kernel-mig-routine semaphore_create)
    (kernel-mig-routine task_create_identity_token)
    (kernel-mig-routine task_info_from_user)
    (kernel-mig-routine task_restartable_ranges_synchronize)
    (kernel-mig-routine thread_info)
    (kernel-mig-routine io_registry_get_root_entry)
    (kernel-mig-routine mach_port_get_refs)
    (kernel-mig-routine thread_policy_set)
    (kernel-mig-routine _mach_make_memory_entry)
    (kernel-mig-routine host_info)
    (kernel-mig-routine io_connect_add_client)
    (kernel-mig-routine io_connect_async_method)
    (kernel-mig-routine io_connect_map_memory_into_task)
    (kernel-mig-routine io_connect_set_notification_port_64)
    (kernel-mig-routine io_registry_entry_get_properties_bin_buf)
    (kernel-mig-routine io_registry_entry_get_registry_entry_id)
    (kernel-mig-routine io_service_add_interest_notification_64)
    (kernel-mig-routine io_service_add_notification_bin_64)
    (kernel-mig-routine io_service_get_matching_services_bin)
    (kernel-mig-routine semaphore_destroy)
    (kernel-mig-routine task_get_special_port_from_user)
    (kernel-mig-routine io_registry_entry_get_name_in_plane)
    (kernel-mig-routine io_registry_entry_get_property_recursively)
    (kernel-mig-routine mach_vm_copy)
    (kernel-mig-routine io_registry_entry_get_path)
    (kernel-mig-routine mach_vm_deferred_reclamation_buffer_allocate)
    (kernel-mig-routine mach_vm_deferred_reclamation_buffer_flush)
    (kernel-mig-routine mach_vm_deferred_reclamation_buffer_resize)
)
(allow file-ioctl
    (ioctl-command DKIOCGETBLOCKCOUNT)
    (ioctl-command DKIOCGETBLOCKSIZE)
    (ioctl-command DKIOCGETFEATURES)
    (ioctl-command DKIOCSYNCHRONIZE)
    (ioctl-command DKIOCUNMAP)
)
(allow system-fsctl
    (fsctl-command (_IO "J" 128))
)
(allow iokit-get-properties
    (iokit-property "IOClassNameOverride")
)
(allow user-preference-read
    (preference-domain "kCFPreferencesAnyApplication")
)
(define (generic-metal)
    (allow iokit-get-properties
        (iokit-property "AAPL,slot-name")
        (iokit-property "Ejectable")
        (iokit-property "IOMediaIcon")
        (iokit-property "MetalPluginClassName")
        (iokit-property "MetalPluginName")
        (iokit-property "Protocol Characteristics")
        (iokit-property "Removable")
        (iokit-property "SafeEjectRequested")
    )
    (allow iokit-open
        (iokit-user-client-class "IOAccelDevice2")
        (iokit-user-client-class "IOAccelSharedUserClient2")
        (iokit-user-client-class "IOAccelSubmitter2")
        (iokit-user-client-class "IOGPUDeviceUserClient")
    )
    (allow mach-lookup
        (global-name "com.apple.CoreServices.coreservicesd")
        (global-name "com.apple.DiskArbitration.diskarbitrationd")
        (global-name "com.apple.MTLCompilerService")
    )
)
(with-filter
    (system-attribute apple-internal)
    (allow file-read* file-map-executable
        (subpath "/usr/local/lib/coredumpplugins/")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.videotoolbox")
    (allow user-preference-read
        (preference-domain "com.apple.VideoProcessing")
        (preference-domain "com.apple.coremedia")
    )
    (allow iokit-get-properties
        (iokit-property "IOAVDAV1DecodeCapabilities")
        (iokit-property "IOAVDH264DecodeCapabilities")
        (iokit-property "IOAVDHEVCDecodeCapabilities")
        (iokit-property "IOAVEHEVCEncode")
        (iokit-property "IOAfterburnerProResDecode")
        (iokit-property "IOGVAHEVCDecode")
        (iokit-property "IOGVAHEVCDecodeCapabilities")
        (iokit-property "IOGVAHEVCEncode")
        (iokit-property "IOGVAHEVCEncodeCapabilities")
        (iokit-property "IOGVAXDecode")
        (iokit-property "IOProResHWDecode")
        (iokit-property "IOProResHWEncode")
        (iokit-property "compatible")
        (iokit-property "soc-generation")
        (iokit-property-regex #"^AppleJPEG")
    )
    (with-filter
        (iokit-registry-entry-class "AppleAVD")
        (allow iokit-get-properties
            (iokit-property "ADSSupported")
            (iokit-property "AVCSupported")
        )
    )
    (allow iokit-open
        (iokit-user-client-class "AppleAVDUserClient")
        (iokit-user-client-class "AppleAVE2UserClient")
        (iokit-user-client-class "AppleJPEGDriverUserClient")
        (iokit-user-client-class "AppleProResUserClient")
    )
    (allow iokit-open-service
        (iokit-registry-entry-class "AppleAVD")
        (iokit-registry-entry-class "AppleJPEGDriver")
    )
    (allow iokit-open-user-client
        (iokit-user-client-class "IOSurfaceAcceleratorClient")
    )
    (allow file-map-executable
        (subpath "/System/Library/Video/Plug-Ins")
    )
    (allow mach-lookup
        (xpc-service-name "com.apple.coremedia.videodecoder")
    )
    (with-filter
        (system-attribute apple-internal)
        (allow file-read* file-map-executable
            (subpath "/AppleInternal/Library/Video/Plug-Ins")
        )
        (allow file-read-metadata
            (path-ancestors "/AppleInternal/Library/Video/Plug-Ins")
        )
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.io-surface")
    (allow iokit-open
        (iokit-user-client-class "IOSurfaceRootUserClient")
        (iokit-registry-entry-class "IOSurfaceSendRight")
    )
    (generic-metal)
)
(with-filter
    (extension "com.apple.virtualization.extension.aes")
    (allow iokit-open
        (iokit-user-client-class "IOAESAcceleratorUserClient")
        (iokit-registry-entry-class "IOAESAccelerator")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.avp.rtc")
    (allow iokit-open
        (iokit-user-client-class "RootDomainUserClient")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.fp")
    (allow iokit-open
        (iokit-user-client-class "com_apple_driver_FairPlayIOKitUserClient")
        (iokit-registry-entry-class "com_apple_driver_FairPlayIOKit")
    )
    (allow mach-lookup
        (global-name "com.apple.adid")
        (global-name "com.apple.lskdd")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.paravirtualized-graphics")
    (allow user-preference-read
        (preference-domain "com.apple.gpu")
        (preference-domain "com.apple.gpusw.ParavirtualizedGraphics")
    )
    (allow mach-lookup
        (global-name "com.apple.coreservices.launchservicesd")
        (global-name "com.apple.tccd.system")
        (global-name "com.apple.windowserver.active")
        (global-name "com.apple.gpusw.ParavirtualizedGraphicsGPUTask")
    )
    (allow iokit-get-properties
        (iokit-registry-entry-class "IOGPU")
        (iokit-registry-entry-class "IOGraphicsAccelerator2")
    )
    (allow file-map-executable
        (subpath "/System/Library/Extensions")
    )
    (allow file-read-metadata
        (literal "/private/var/db/.AppleSetupDone")
    )
    (allow file-read-data
        (literal "/Library/Preferences/com.apple.gpusw.ParavirtualizedGraphics.plist")
    )
    (allow iokit-open
        (iokit-connection "IOAccelerator")
        (iokit-registry-entry-class "IOGPUDevice")
        (iokit-registry-entry-class "IOAccelShared2")
        (iokit-registry-entry-class "IOAccelDevice2")
        (iokit-registry-entry-class "IOAccelCommandQueue")
    )
)
(define (generic-core-audio)
    (allow mach-lookup
        (global-name "com.apple.audio.AudioComponentRegistrar")
        (global-name "com.apple.audio.AudioSession")
        (global-name "com.apple.audio.audiohald")
        (global-name "com.apple.audio.coreaudiod")
        (global-name "com.apple.audio.toolbox.reporting.service")
        (global-name "com.apple.audioanalyticsd")
        (global-name "com.apple.cmio.registerassistantservice.system-extensions")
        (global-name "com.apple.distributed_notifications@Uv3")
        (global-name "com.apple.tccd")
        (xpc-service-name "com.apple.audio.SandboxHelper")
    )
    (allow file-map-executable
        (literal "/System/Library/Components/AudioDSP.component/Contents/MacOS/AudioDSP")
        (literal "/System/Library/Components/CoreAudio.component/Contents/MacOS/CoreAudio")
        (literal "/System/Library/Extensions/AppleHDA.kext/Contents/PlugIns/AppleHDAHALPlugIn.bundle/Contents/MacOS/AppleHDAHALPlugIn")
    )
    (allow iokit-get-properties
        (iokit-property "acoustic-id")
        (iokit-property "board-id")
        (iokit-property "IOAudioEngineDisableClockBoundsCheck")
        (iokit-property "IOAudioSampleRate")
        (iokit-property "IOAudioStreamSampleFormatByteOrder")
        (iokit-property "IOConsoleUsers")
        (iokit-property "IORegistryEntryPropertyKeys")
        (iokit-property "SupportAudioAUUC")
        (iokit-property-regex #"^IOAudioControl(ChannelID|ID|SubType|Usage|Value)")
        (iokit-property-regex #"^IOAudioDevice(CanBeDefaults|TransportType)")
        (iokit-property-regex #"^IOAudioEngine(ChannelNames|ClientDescription|CoreAudioPlugIn|(|Device)Description|Flavor|GlobalUniqueID|IsHidden|OutputChannelLayout|SampleOffset|State)")
        (iokit-property-regex #"^IOAudioEngine(Input|Output)Sample(Latency|Offset)")
        (iokit-property-regex #"^IOAudioEngineClock(Domain|IsStable)")
        (iokit-property-regex #"^IOAudioEngineNum(ActiveUserClients|SampleFramesPerBuffer)")
    )
    (allow ipc-posix-shm-read* ipc-posix-shm-write-data
        (ipc-posix-name-prefix "AudioIO")
    )
    (allow user-preference-read
        (preference-domain "com.apple.avfoundation")
        (preference-domain "com.apple.coreaudio")
        (preference-domain "com.apple.coremedia")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.audio-output")
    (generic-core-audio)
    (allow iokit-open
       (require-all
           (iokit-connection "AppleHDAEngineOutput")
           (iokit-user-client-class "IOAudioControlUserClient" "IOAudioEngineUserClient")
        )
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.audio-input")
    (allow device-microphone)
    (generic-core-audio)
    (allow iokit-open
       (require-all
           (iokit-connection "AppleHDAEngineInput")
           (iokit-user-client-class "IOAudioControlUserClient" "IOAudioEngineUserClient")
        )
    )
)
(with-filter
    (extension "com.apple.app-sandbox.read")
    (allow file-read*)
    (allow file-issue-extension
        (extension-class "com.apple.app-sandbox.read")
    )
)
(with-filter
    (extension "com.apple.app-sandbox.read-write")
    (allow file-read* file-write*)
    (allow file-issue-extension
        (extension-class "com.apple.app-sandbox.read" "com.apple.app-sandbox.read-write")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.linux-gpu-acceleration")
    (allow file-map-executable
        (subpath "/System/Library/Extensions")
    )
    (allow file-issue-extension
        (extension-class "com.apple.app-sandbox.read")
    )
    (allow iokit-get-properties
        (iokit-property "ATY,DeviceName")
        (iokit-property "ATY,FamilyName")
        (iokit-property "built-in")
        (iokit-property "device-id")
        (iokit-property "vendor-id")
    )
    (allow iokit-open-user-client
        (iokit-user-client-class "AGPMClient")
    )
    (generic-metal)
)
(with-filter
    (extension "com.apple.virtualization.extension.ane")
    (allow iokit-get-properties
        (iokit-property "ane-type")
        (iokit-property "chip-id")
    )
    (with-filter
        (iokit-registry-entry-class "ANEDriver")
        (allow iokit-get-properties
            (iokit-property "DeviceProperties")
        )
    )
    (with-filter
        (iokit-registry-entry-class "H11ANEIn")
        (allow iokit-get-properties
            (iokit-property "DeviceProperties")
        )
    )
    (allow iokit-open
        (iokit-connection "H11ANE")
        (iokit-user-client-class "H11ANEInDirectPathClient")
        (iokit-user-client-class "H11ANEInUserClient")
        (iokit-user-client-class "H1xANELoadBalancerClient")
    )
    (allow mach-lookup
        (global-name "com.apple.ANECompilerService")
        (global-name "com.apple.aned")
        (global-name "com.apple.appleneuralengine")
    )
)
(deny iokit-open-service
    (iokit-registry-entry-class "ANEPrivilegedVMAccess")
)
(with-filter
    (extension "com.apple.virtualization.extension.ane.privileged-vm-client")
    (allow iokit-open-service
        (iokit-registry-entry-class "ANEPrivilegedVMAccess")
    )
    (allow iokit-open-user-client
        (iokit-user-client-class "ANEPrivilegedVMAccessUserClient")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.usb-hci")
    (allow iokit-open
        (require-all
            (iokit-connection "AppleUSBUserHCIResources")
            (iokit-user-client-class "AppleUSBUserHCIUserClient")
        )
    )
    (allow iokit-get-properties
        (iokit-property "locationID")
    )
    (with-filter
        (iokit-registry-entry-class "AppleUSBUserHCIUserClient")
        (allow iokit-set-properties
            (iokit-property "IOUSBHostControllerInterfaceUUID")
        )
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.fuse")
    (allow network-bind (remote unix))
)
(with-filter
    (extension "com.apple.virtualization.extension.rosetta-directory-share")
    (allow file-read*
        (subpath "/Library/Apple/usr/libexec/oah/RosettaLinux")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.biometrics")
    (allow mach-lookup
        (global-name "com.apple.biometrickitd")
    )
    (allow file-read*
        (literal "/usr/local/lib/libVirtualBiometricServices.dylib")
    )
    (allow file-map-executable
        (literal "/usr/local/lib/libVirtualBiometricServices.dylib")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.strong-identity")
    (allow mach-lookup
        (global-name "com.apple.AppleVirtualPlatform.SystemService")
        (global-name "com.apple.CoreAuthentication.daemon")
        (xpc-service-name "com.apple.AppleVirtualPlatform.IdentityService")
    )
)
(allow mach-lookup
    (extension "com.apple.virtualization.mach-extension")
)
(with-filter
    (extension "com.apple.virtualization.extension.bridged-networking")
    (allow iokit-get-properties
        (iokit-property "BSD Name")
        (iokit-property "DeviceModemOverrides")
        (iokit-property "DevicePPPOverrides")
        (iokit-property "HiddenConfiguration")
        (iokit-property "HiddenInterface")
        (iokit-property "HiddenPort")
        (iokit-property "IOActivePacketFilters")
        (iokit-property "IOBuiltin")
        (iokit-property "IOControllerEnabled")
        (iokit-property "IOFeatures")
        (iokit-property "IOGeneralInterest")
        (iokit-property "IOInterfaceExtraFlags")
        (iokit-property "IOInterfaceFlags")
        (iokit-property "IOInterfaceNamePrefix")
        (iokit-property "IOInterfaceState")
        (iokit-property "IOInterfaceType")
        (iokit-property "IOInterfaceUnit")
        (iokit-property "IOLinkActiveCount")
        (iokit-property "IOLocation")
        (iokit-property "IOMACAddress")
        (iokit-property "IOMaxTransferUnit")
        (iokit-property "IOMediaAddressLength")
        (iokit-property "IOMediaHeaderLength")
        (iokit-property "IONetworkData")
        (iokit-property "IOPrimaryInterface")
        (iokit-property "IOProviderClass")
        (iokit-property "IORequiredPacketFilters")
        (iokit-property "IOSerialBSDClientType")
        (iokit-property "IOTTYBaseName")
        (iokit-property "IOTTYDevice")
        (iokit-property "Initializing")
        (iokit-property "InterfaceRole")
        (iokit-property "IsEphemeral")
        (iokit-property "ModemCCL")
        (iokit-property "NetworkConfigurationOverrides")
        (iokit-property "New Interface Detected Action")
        (iokit-property "PCI-Thunderbolt")
        (iokit-property "Product Name")
        (iokit-property "SelfNamed")
        (iokit-property "SupportsIPhoneOS")
        (iokit-property "SupportsVMNETBridgedMode")
        (iokit-property "WWAN")
        (iokit-property "idProduct")
        (iokit-property "idVendor")
        (iokit-property "kUSBProductString")
        (iokit-property "name")
    )
    (allow file-read*
        (literal "/Library/Preferences/SystemConfiguration/preferences.plist")
    )
    (allow mach-lookup
        (global-name "com.apple.SystemConfiguration.configd")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.usb-device-passthrough")
    (allow mach-lookup
        (global-name "com.apple.iokit.IOServiceAuthorizeAgent")
    )
    (allow file-map-executable
        (subpath "/System/Library/Extensions")
    )
    (allow iokit-open
        (iokit-user-client-class "AppleUSBHostDeviceUserClient")
        (iokit-user-client-class "AppleUSBHostFrameworkDeviceClient")
        (iokit-user-client-class "AppleUSBHostFrameworkInterfaceClient")
        (iokit-user-client-class "AppleUSBHostInterfaceUserClient")
    )
    (with-filter
        (iokit-registry-entry-class "IOUSBHostDevice")
        (allow iokit-get-properties)
    )
    (with-filter
        (iokit-registry-entry-class "IOUSBHostInterface")
        (allow iokit-get-properties)
    )
)
(with-filter
    (require-all
        (system-attribute apple-internal)
        (extension "com.apple.virtualization.extension.bifrost-pci-device.local")
    )
    (allow mach-lookup
        (global-name "com.apple.internal.bifrostd")
    )
)
(with-filter
    (require-all
        (system-attribute apple-internal)
        (extension "com.apple.virtualization.extension.bifrost-pci-device.unix")
    )
    (allow network-outbound
        (subpath "/")
    )
)
(with-filter
    (extension "com.apple.virtualization.extension.disk-images-2.amber-plugin")
    (allow mach-lookup
        (global-name "com.apple.AppSSO.service-xpc")
        (global-name "com.apple.SystemConfiguration.configd")
        (global-name "com.apple.TrustEvaluationAgent")
        (global-name "com.apple.amberd")
        (global-name "com.apple.nesessionmanager")
        (global-name "com.apple.nesessionmanager.content-filter")
        (global-name "com.apple.CodeSigningHelper")
    )
    (allow file-read-data
        (literal "/Library/Preferences/com.apple.networkd.plist")
        (literal "/private/etc/hosts")
        (literal "/private/etc/ssl/cert.pem")
        (literal "/private/etc/ssl/openssl.cnf")
    )
    (allow network-outbound)
    (allow syscall-unix
        (syscall-number SYS_change_fdguard_np)
        (syscall-number SYS_necp_client_action)
        (syscall-number SYS_necp_open)
    )
)
(with-filter
    (iokit-registry-entry-class "IOPlatformExpertDevice")
    (allow iokit-get-properties
        (iokit-property "IOPlatformSerialNumber")
        (iokit-property "platform-name")
    )
)
(with-filter
    (require-all
        (system-attribute apple-internal)
        (extension "com.apple.virtualization.extension.internal.rosetta")
    )
    (allow file-read*
        (subpath "/usr/local/libexec/rosetta")
    )
)
(with-filter
    (system-attribute apple-internal)
    (allow iokit-open
        (iokit-user-client-class "PCIPassthroughControllerUserClient")
        (iokit-user-client-class "PCIPassthroughUserClient")
    )
)
(with-filter
    (require-all
        (system-attribute apple-internal)
        (extension "com.apple.virtualization.extension.disk-images-2.julio-test-plugin")
    )
    (allow file-read*
        (literal "/AppleInternal/System/Library")
        (literal "/AppleInternal/System/Library/libtest_plugin_shared_object.dylib")
    )
    (allow file-map-executable
        (literal "/AppleInternal/System/Library/libtest_plugin_shared_object.dylib")
    )
)
