;;; Copyright (c) 2020-2023 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* socket-ioctl 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-group-kevent)
    (syscall-number SYS_socket)
    (syscall-number SYS_getattrlist)
    (syscall-number SYS_sigsuspend_nocancel)
    (syscall-number SYS_workq_kernreturn)
    (syscall-group-bsdthread)
    (syscall-group-pthread-cv)
    (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_getrlimit)
    (syscall-number SYS_sigaction)
    (syscall-number SYS_sigprocmask)
    (syscall-number SYS_thread_selfid)
    (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_getaudit_addr)
    (syscall-number SYS_mmap)
    (syscall-number SYS_munmap)
    (syscall-number SYS___mac_syscall)
    (syscall-number SYS_kdebug_trace_string)
    (syscall-number SYS_mprotect)
    (syscall-number SYS_getegid)
    (syscall-number SYS_geteuid)
    (syscall-number SYS_fstat64)
    (syscall-number SYS_lseek)
    (syscall-group-read)
)
(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_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_host_create_mach_voucher_trap)
    (machtrap-number MSC_host_self_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_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_trap)
    (machtrap-number MSC_semaphore_timedwait_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 mach-lookup (xpc-service-name-prefix ""))
(allow mach-lookup
    (global-name "com.apple.coreservices.launchservicesd")
    (global-name "com.apple.tccd.system")
    (global-name "com.apple.windowserver.active")
)
(allow mach-bootstrap
    (apply-message-filter (with report)
        (deny mach-message-send)
        (allow mach-message-send (message-number
            207
            301
            800
            802
            803
            804
            805
            )
         )
    )
)
(deny syscall-mig (with partial-symbolication))
(allow syscall-mig
    (kernel-mig-routine clock_get_time)
    (kernel-mig-routine host_request_notification)
    (kernel-mig-routine mach_exception_raise)
    (kernel-mig-routine mach_port_get_context_from_user)
    (kernel-mig-routine mach_port_is_connection_for_service)
    (kernel-mig-routine mach_port_set_attributes)
    (kernel-mig-routine mach_vm_map_external)
    (kernel-mig-routine mach_vm_remap_external)
    (kernel-mig-routine semaphore_create)
    (kernel-mig-routine semaphore_destroy)
    (kernel-mig-routine task_get_special_port_from_user)
    (kernel-mig-routine task_info_from_user)
    (kernel-mig-routine task_restartable_ranges_synchronize)
    (kernel-mig-routine thread_info)
)
(allow user-preference-read
    (preference-domain "kCFPreferencesAnyApplication")
)
