mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-08-09 16:36:40 -07:00
556 lines
19 KiB
TypeScript
556 lines
19 KiB
TypeScript
|
|
/**
|
||
|
|
* @license
|
||
|
|
* Copyright 2026 Google LLC
|
||
|
|
* SPDX-License-Identifier: Apache-2.0
|
||
|
|
*/
|
||
|
|
|
||
|
|
export const BUILTIN_SEATBELT_PROFILE_CONTENTS: Record<string, string> = {
|
||
|
|
'permissive-open': `(version 1)
|
||
|
|
(deny default)
|
||
|
|
(allow file-read*)
|
||
|
|
(allow process-exec)
|
||
|
|
(allow process-fork)
|
||
|
|
(allow signal (target self))
|
||
|
|
(allow sysctl-read
|
||
|
|
(sysctl-name "hw.activecpu")
|
||
|
|
(sysctl-name "hw.busfrequency_compat")
|
||
|
|
(sysctl-name "hw.byteorder")
|
||
|
|
(sysctl-name "hw.cacheconfig")
|
||
|
|
(sysctl-name "hw.cachelinesize_compat")
|
||
|
|
(sysctl-name "hw.cpufamily")
|
||
|
|
(sysctl-name "hw.cpufrequency_compat")
|
||
|
|
(sysctl-name "hw.cputype")
|
||
|
|
(sysctl-name "hw.l1dcachesize_compat")
|
||
|
|
(sysctl-name "hw.l1icachesize_compat")
|
||
|
|
(sysctl-name "hw.l2cachesize_compat")
|
||
|
|
(sysctl-name "hw.l3cachesize_compat")
|
||
|
|
(sysctl-name "hw.logicalcpu_max")
|
||
|
|
(sysctl-name "hw.machine")
|
||
|
|
(sysctl-name "hw.ncpu")
|
||
|
|
(sysctl-name "hw.nperflevels")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_BF16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_DotProd")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FCMA")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FHM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FP16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_I8MM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_JSCVT")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_LSE")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_RDM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_SHA512")
|
||
|
|
(sysctl-name "hw.optional.armv8_2_sha512")
|
||
|
|
(sysctl-name "hw.packages")
|
||
|
|
(sysctl-name "hw.pagesize_compat")
|
||
|
|
(sysctl-name "hw.physicalcpu_max")
|
||
|
|
(sysctl-name "hw.tbfrequency_compat")
|
||
|
|
(sysctl-name "hw.vectorunit")
|
||
|
|
(sysctl-name "kern.hostname")
|
||
|
|
(sysctl-name "kern.maxfilesperproc")
|
||
|
|
(sysctl-name "kern.osproductversion")
|
||
|
|
(sysctl-name "kern.osrelease")
|
||
|
|
(sysctl-name "kern.ostype")
|
||
|
|
(sysctl-name "kern.osvariant_status")
|
||
|
|
(sysctl-name "kern.osversion")
|
||
|
|
(sysctl-name "kern.secure_kernel")
|
||
|
|
(sysctl-name "kern.usrstack64")
|
||
|
|
(sysctl-name "kern.version")
|
||
|
|
(sysctl-name "sysctl.proc_cputype")
|
||
|
|
(sysctl-name-prefix "hw.perflevel")
|
||
|
|
)
|
||
|
|
(allow file-write*
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(literal "/dev/stdout")
|
||
|
|
(literal "/dev/stderr")
|
||
|
|
(literal "/dev/null")
|
||
|
|
(literal "/dev/ptmx")
|
||
|
|
(regex #"^/dev/ttys[0-9]*$")
|
||
|
|
)
|
||
|
|
(allow mach-lookup
|
||
|
|
(global-name "com.apple.sysmond")
|
||
|
|
(global-name "com.apple.system.opendirectoryd.libinfo")
|
||
|
|
(global-name "com.apple.system.opendirectoryd.membership")
|
||
|
|
(global-name "com.apple.bsd.dirhelper")
|
||
|
|
(global-name "com.apple.SecurityServer")
|
||
|
|
(global-name "com.apple.networkd")
|
||
|
|
(global-name "com.apple.ocspd")
|
||
|
|
(global-name "com.apple.trustd")
|
||
|
|
(global-name "com.apple.trustd.agent")
|
||
|
|
(global-name "com.apple.mDNSResponder")
|
||
|
|
(global-name "com.apple.mDNSResponderHelper")
|
||
|
|
(global-name "com.apple.SystemConfiguration.DNSConfiguration")
|
||
|
|
(global-name "com.apple.SystemConfiguration.configd")
|
||
|
|
)
|
||
|
|
(allow system-socket
|
||
|
|
(require-all
|
||
|
|
(socket-domain AF_SYSTEM)
|
||
|
|
(socket-protocol 2)
|
||
|
|
)
|
||
|
|
)
|
||
|
|
(allow file-ioctl (regex #"^/dev/tty.*"))
|
||
|
|
(allow network-inbound (local ip "*:*"))
|
||
|
|
(allow network-bind (local ip "*:*"))
|
||
|
|
(allow network-outbound)`,
|
||
|
|
|
||
|
|
'permissive-proxied': `(version 1)
|
||
|
|
(deny default)
|
||
|
|
(allow file-read*)
|
||
|
|
(allow process-exec)
|
||
|
|
(allow process-fork)
|
||
|
|
(allow signal (target self))
|
||
|
|
(allow sysctl-read
|
||
|
|
(sysctl-name "hw.activecpu")
|
||
|
|
(sysctl-name "hw.busfrequency_compat")
|
||
|
|
(sysctl-name "hw.byteorder")
|
||
|
|
(sysctl-name "hw.cacheconfig")
|
||
|
|
(sysctl-name "hw.cachelinesize_compat")
|
||
|
|
(sysctl-name "hw.cpufamily")
|
||
|
|
(sysctl-name "hw.cpufrequency_compat")
|
||
|
|
(sysctl-name "hw.cputype")
|
||
|
|
(sysctl-name "hw.l1dcachesize_compat")
|
||
|
|
(sysctl-name "hw.l1icachesize_compat")
|
||
|
|
(sysctl-name "hw.l2cachesize_compat")
|
||
|
|
(sysctl-name "hw.l3cachesize_compat")
|
||
|
|
(sysctl-name "hw.logicalcpu_max")
|
||
|
|
(sysctl-name "hw.machine")
|
||
|
|
(sysctl-name "hw.ncpu")
|
||
|
|
(sysctl-name "hw.nperflevels")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_BF16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_DotProd")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FCMA")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FHM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FP16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_I8MM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_JSCVT")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_LSE")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_RDM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_SHA512")
|
||
|
|
(sysctl-name "hw.optional.armv8_2_sha512")
|
||
|
|
(sysctl-name "hw.packages")
|
||
|
|
(sysctl-name "hw.pagesize_compat")
|
||
|
|
(sysctl-name "hw.physicalcpu_max")
|
||
|
|
(sysctl-name "hw.tbfrequency_compat")
|
||
|
|
(sysctl-name "hw.vectorunit")
|
||
|
|
(sysctl-name "kern.hostname")
|
||
|
|
(sysctl-name "kern.maxfilesperproc")
|
||
|
|
(sysctl-name "kern.osproductversion")
|
||
|
|
(sysctl-name "kern.osrelease")
|
||
|
|
(sysctl-name "kern.ostype")
|
||
|
|
(sysctl-name "kern.osvariant_status")
|
||
|
|
(sysctl-name "kern.osversion")
|
||
|
|
(sysctl-name "kern.secure_kernel")
|
||
|
|
(sysctl-name "kern.usrstack64")
|
||
|
|
(sysctl-name "kern.version")
|
||
|
|
(sysctl-name "sysctl.proc_cputype")
|
||
|
|
(sysctl-name-prefix "hw.perflevel")
|
||
|
|
)
|
||
|
|
(allow file-write*
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(literal "/dev/stdout")
|
||
|
|
(literal "/dev/stderr")
|
||
|
|
(literal "/dev/null")
|
||
|
|
(literal "/dev/ptmx")
|
||
|
|
(regex #"^/dev/ttys[0-9]*$")
|
||
|
|
)
|
||
|
|
(allow mach-lookup
|
||
|
|
(global-name "com.apple.sysmond")
|
||
|
|
(global-name "com.apple.system.opendirectoryd.libinfo")
|
||
|
|
(global-name "com.apple.system.opendirectoryd.membership")
|
||
|
|
(global-name "com.apple.bsd.dirhelper")
|
||
|
|
(global-name "com.apple.SecurityServer")
|
||
|
|
(global-name "com.apple.networkd")
|
||
|
|
(global-name "com.apple.ocspd")
|
||
|
|
(global-name "com.apple.trustd")
|
||
|
|
(global-name "com.apple.trustd.agent")
|
||
|
|
(global-name "com.apple.mDNSResponder")
|
||
|
|
(global-name "com.apple.mDNSResponderHelper")
|
||
|
|
(global-name "com.apple.SystemConfiguration.DNSConfiguration")
|
||
|
|
(global-name "com.apple.SystemConfiguration.configd")
|
||
|
|
)
|
||
|
|
(allow system-socket
|
||
|
|
(require-all
|
||
|
|
(socket-domain AF_SYSTEM)
|
||
|
|
(socket-protocol 2)
|
||
|
|
)
|
||
|
|
)
|
||
|
|
(allow file-ioctl (regex #"^/dev/tty.*"))
|
||
|
|
(allow network-inbound (local ip "localhost:9229"))
|
||
|
|
(allow network-bind (local ip "*:*"))
|
||
|
|
(allow network-outbound (remote tcp "localhost:8877"))`,
|
||
|
|
|
||
|
|
'restrictive-open': `(version 1)
|
||
|
|
(deny default)
|
||
|
|
(allow file-read*)
|
||
|
|
(allow process-exec)
|
||
|
|
(allow process-fork)
|
||
|
|
(allow signal (target self))
|
||
|
|
(allow sysctl-read
|
||
|
|
(sysctl-name "hw.activecpu")
|
||
|
|
(sysctl-name "hw.busfrequency_compat")
|
||
|
|
(sysctl-name "hw.byteorder")
|
||
|
|
(sysctl-name "hw.cacheconfig")
|
||
|
|
(sysctl-name "hw.cachelinesize_compat")
|
||
|
|
(sysctl-name "hw.cpufamily")
|
||
|
|
(sysctl-name "hw.cpufrequency_compat")
|
||
|
|
(sysctl-name "hw.cputype")
|
||
|
|
(sysctl-name "hw.l1dcachesize_compat")
|
||
|
|
(sysctl-name "hw.l1icachesize_compat")
|
||
|
|
(sysctl-name "hw.l2cachesize_compat")
|
||
|
|
(sysctl-name "hw.l3cachesize_compat")
|
||
|
|
(sysctl-name "hw.logicalcpu_max")
|
||
|
|
(sysctl-name "hw.machine")
|
||
|
|
(sysctl-name "hw.ncpu")
|
||
|
|
(sysctl-name "hw.nperflevels")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_BF16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_DotProd")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FCMA")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FHM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FP16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_I8MM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_JSCVT")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_LSE")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_RDM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_SHA512")
|
||
|
|
(sysctl-name "hw.optional.armv8_2_sha512")
|
||
|
|
(sysctl-name "hw.packages")
|
||
|
|
(sysctl-name "hw.pagesize_compat")
|
||
|
|
(sysctl-name "hw.physicalcpu_max")
|
||
|
|
(sysctl-name "hw.tbfrequency_compat")
|
||
|
|
(sysctl-name "hw.vectorunit")
|
||
|
|
(sysctl-name "kern.hostname")
|
||
|
|
(sysctl-name "kern.maxfilesperproc")
|
||
|
|
(sysctl-name "kern.osproductversion")
|
||
|
|
(sysctl-name "kern.osrelease")
|
||
|
|
(sysctl-name "kern.ostype")
|
||
|
|
(sysctl-name "kern.osvariant_status")
|
||
|
|
(sysctl-name "kern.osversion")
|
||
|
|
(sysctl-name "kern.secure_kernel")
|
||
|
|
(sysctl-name "kern.usrstack64")
|
||
|
|
(sysctl-name "kern.version")
|
||
|
|
(sysctl-name "sysctl.proc_cputype")
|
||
|
|
(sysctl-name-prefix "hw.perflevel")
|
||
|
|
)
|
||
|
|
(allow file-write*
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(literal "/dev/stdout")
|
||
|
|
(literal "/dev/stderr")
|
||
|
|
(literal "/dev/null")
|
||
|
|
)
|
||
|
|
(allow mach-lookup (global-name "com.apple.sysmond"))
|
||
|
|
(allow file-ioctl (regex #"^/dev/tty.*"))
|
||
|
|
(allow network-inbound (local ip "localhost:9229"))
|
||
|
|
(allow network-outbound)`,
|
||
|
|
|
||
|
|
'restrictive-proxied': `(version 1)
|
||
|
|
(deny default)
|
||
|
|
(allow file-read*)
|
||
|
|
(allow process-exec)
|
||
|
|
(allow process-fork)
|
||
|
|
(allow signal (target self))
|
||
|
|
(allow sysctl-read
|
||
|
|
(sysctl-name "hw.activecpu")
|
||
|
|
(sysctl-name "hw.busfrequency_compat")
|
||
|
|
(sysctl-name "hw.byteorder")
|
||
|
|
(sysctl-name "hw.cacheconfig")
|
||
|
|
(sysctl-name "hw.cachelinesize_compat")
|
||
|
|
(sysctl-name "hw.cpufamily")
|
||
|
|
(sysctl-name "hw.cpufrequency_compat")
|
||
|
|
(sysctl-name "hw.cputype")
|
||
|
|
(sysctl-name "hw.l1dcachesize_compat")
|
||
|
|
(sysctl-name "hw.l1icachesize_compat")
|
||
|
|
(sysctl-name "hw.l2cachesize_compat")
|
||
|
|
(sysctl-name "hw.l3cachesize_compat")
|
||
|
|
(sysctl-name "hw.logicalcpu_max")
|
||
|
|
(sysctl-name "hw.machine")
|
||
|
|
(sysctl-name "hw.ncpu")
|
||
|
|
(sysctl-name "hw.nperflevels")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_BF16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_DotProd")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FCMA")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FHM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FP16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_I8MM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_JSCVT")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_LSE")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_RDM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_SHA512")
|
||
|
|
(sysctl-name "hw.optional.armv8_2_sha512")
|
||
|
|
(sysctl-name "hw.packages")
|
||
|
|
(sysctl-name "hw.pagesize_compat")
|
||
|
|
(sysctl-name "hw.physicalcpu_max")
|
||
|
|
(sysctl-name "hw.tbfrequency_compat")
|
||
|
|
(sysctl-name "hw.vectorunit")
|
||
|
|
(sysctl-name "kern.hostname")
|
||
|
|
(sysctl-name "kern.maxfilesperproc")
|
||
|
|
(sysctl-name "kern.osproductversion")
|
||
|
|
(sysctl-name "kern.osrelease")
|
||
|
|
(sysctl-name "kern.ostype")
|
||
|
|
(sysctl-name "kern.osvariant_status")
|
||
|
|
(sysctl-name "kern.osversion")
|
||
|
|
(sysctl-name "kern.secure_kernel")
|
||
|
|
(sysctl-name "kern.usrstack64")
|
||
|
|
(sysctl-name "kern.version")
|
||
|
|
(sysctl-name "sysctl.proc_cputype")
|
||
|
|
(sysctl-name-prefix "hw.perflevel")
|
||
|
|
)
|
||
|
|
(allow file-write*
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(literal "/dev/stdout")
|
||
|
|
(literal "/dev/stderr")
|
||
|
|
(literal "/dev/null")
|
||
|
|
)
|
||
|
|
(allow mach-lookup (global-name "com.apple.sysmond"))
|
||
|
|
(allow file-ioctl (regex #"^/dev/tty.*"))
|
||
|
|
(allow network-inbound (local ip "localhost:9229"))
|
||
|
|
(allow network-outbound (remote tcp "localhost:8877"))`,
|
||
|
|
|
||
|
|
'strict-open': `(version 1)
|
||
|
|
(deny default)
|
||
|
|
(allow file-read*
|
||
|
|
(literal "/")
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(literal (string-append (param "HOME_DIR") "/.gitconfig"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.nvm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.fnm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.node"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.config"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(subpath "/usr")
|
||
|
|
(subpath "/bin")
|
||
|
|
(subpath "/sbin")
|
||
|
|
(subpath "/Library")
|
||
|
|
(subpath "/System")
|
||
|
|
(subpath "/private")
|
||
|
|
(subpath "/dev")
|
||
|
|
(subpath "/etc")
|
||
|
|
(subpath "/opt")
|
||
|
|
(subpath "/Applications")
|
||
|
|
)
|
||
|
|
(allow file-read-metadata)
|
||
|
|
(allow process-exec)
|
||
|
|
(allow process-fork)
|
||
|
|
(allow signal (target self))
|
||
|
|
(allow sysctl-read
|
||
|
|
(sysctl-name "hw.activecpu")
|
||
|
|
(sysctl-name "hw.busfrequency_compat")
|
||
|
|
(sysctl-name "hw.byteorder")
|
||
|
|
(sysctl-name "hw.cacheconfig")
|
||
|
|
(sysctl-name "hw.cachelinesize_compat")
|
||
|
|
(sysctl-name "hw.cpufamily")
|
||
|
|
(sysctl-name "hw.cpufrequency_compat")
|
||
|
|
(sysctl-name "hw.cputype")
|
||
|
|
(sysctl-name "hw.l1dcachesize_compat")
|
||
|
|
(sysctl-name "hw.l1icachesize_compat")
|
||
|
|
(sysctl-name "hw.l2cachesize_compat")
|
||
|
|
(sysctl-name "hw.l3cachesize_compat")
|
||
|
|
(sysctl-name "hw.logicalcpu_max")
|
||
|
|
(sysctl-name "hw.machine")
|
||
|
|
(sysctl-name "hw.ncpu")
|
||
|
|
(sysctl-name "hw.nperflevels")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_BF16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_DotProd")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FCMA")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FHM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FP16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_I8MM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_JSCVT")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_LSE")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_RDM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_SHA512")
|
||
|
|
(sysctl-name "hw.optional.armv8_2_sha512")
|
||
|
|
(sysctl-name "hw.packages")
|
||
|
|
(sysctl-name "hw.pagesize_compat")
|
||
|
|
(sysctl-name "hw.physicalcpu_max")
|
||
|
|
(sysctl-name "hw.tbfrequency_compat")
|
||
|
|
(sysctl-name "hw.vectorunit")
|
||
|
|
(sysctl-name "kern.hostname")
|
||
|
|
(sysctl-name "kern.maxfilesperproc")
|
||
|
|
(sysctl-name "kern.osproductversion")
|
||
|
|
(sysctl-name "kern.osrelease")
|
||
|
|
(sysctl-name "kern.ostype")
|
||
|
|
(sysctl-name "kern.osvariant_status")
|
||
|
|
(sysctl-name "kern.osversion")
|
||
|
|
(sysctl-name "kern.secure_kernel")
|
||
|
|
(sysctl-name "kern.usrstack64")
|
||
|
|
(sysctl-name "kern.version")
|
||
|
|
(sysctl-name "sysctl.proc_cputype")
|
||
|
|
(sysctl-name-prefix "hw.perflevel")
|
||
|
|
)
|
||
|
|
(allow file-write*
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(literal "/dev/stdout")
|
||
|
|
(literal "/dev/stderr")
|
||
|
|
(literal "/dev/null")
|
||
|
|
)
|
||
|
|
(allow mach-lookup (global-name "com.apple.sysmond"))
|
||
|
|
(allow file-ioctl (regex #"^/dev/tty.*"))
|
||
|
|
(allow network-inbound (local ip "localhost:9229"))
|
||
|
|
(allow network-outbound)`,
|
||
|
|
|
||
|
|
'strict-proxied': `(version 1)
|
||
|
|
(deny default)
|
||
|
|
(allow file-read*
|
||
|
|
(literal "/")
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(literal (string-append (param "HOME_DIR") "/.gitconfig"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.nvm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.fnm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.node"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.config"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(subpath "/usr")
|
||
|
|
(subpath "/bin")
|
||
|
|
(subpath "/sbin")
|
||
|
|
(subpath "/Library")
|
||
|
|
(subpath "/System")
|
||
|
|
(subpath "/private")
|
||
|
|
(subpath "/dev")
|
||
|
|
(subpath "/etc")
|
||
|
|
(subpath "/opt")
|
||
|
|
(subpath "/Applications")
|
||
|
|
)
|
||
|
|
(allow file-read-metadata)
|
||
|
|
(allow process-exec)
|
||
|
|
(allow process-fork)
|
||
|
|
(allow signal (target self))
|
||
|
|
(allow sysctl-read
|
||
|
|
(sysctl-name "hw.activecpu")
|
||
|
|
(sysctl-name "hw.busfrequency_compat")
|
||
|
|
(sysctl-name "hw.byteorder")
|
||
|
|
(sysctl-name "hw.cacheconfig")
|
||
|
|
(sysctl-name "hw.cachelinesize_compat")
|
||
|
|
(sysctl-name "hw.cpufamily")
|
||
|
|
(sysctl-name "hw.cpufrequency_compat")
|
||
|
|
(sysctl-name "hw.cputype")
|
||
|
|
(sysctl-name "hw.l1dcachesize_compat")
|
||
|
|
(sysctl-name "hw.l1icachesize_compat")
|
||
|
|
(sysctl-name "hw.l2cachesize_compat")
|
||
|
|
(sysctl-name "hw.l3cachesize_compat")
|
||
|
|
(sysctl-name "hw.logicalcpu_max")
|
||
|
|
(sysctl-name "hw.machine")
|
||
|
|
(sysctl-name "hw.ncpu")
|
||
|
|
(sysctl-name "hw.nperflevels")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_BF16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_DotProd")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FCMA")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FHM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_FP16")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_I8MM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_JSCVT")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_LSE")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_RDM")
|
||
|
|
(sysctl-name "hw.optional.arm.FEAT_SHA512")
|
||
|
|
(sysctl-name "hw.optional.armv8_2_sha512")
|
||
|
|
(sysctl-name "hw.packages")
|
||
|
|
(sysctl-name "hw.pagesize_compat")
|
||
|
|
(sysctl-name "hw.physicalcpu_max")
|
||
|
|
(sysctl-name "hw.tbfrequency_compat")
|
||
|
|
(sysctl-name "hw.vectorunit")
|
||
|
|
(sysctl-name "kern.hostname")
|
||
|
|
(sysctl-name "kern.maxfilesperproc")
|
||
|
|
(sysctl-name "kern.osproductversion")
|
||
|
|
(sysctl-name "kern.osrelease")
|
||
|
|
(sysctl-name "kern.ostype")
|
||
|
|
(sysctl-name "kern.osvariant_status")
|
||
|
|
(sysctl-name "kern.osversion")
|
||
|
|
(sysctl-name "kern.secure_kernel")
|
||
|
|
(sysctl-name "kern.usrstack64")
|
||
|
|
(sysctl-name "kern.version")
|
||
|
|
(sysctl-name "sysctl.proc_cputype")
|
||
|
|
(sysctl-name-prefix "hw.perflevel")
|
||
|
|
)
|
||
|
|
(allow file-write*
|
||
|
|
(subpath (param "TARGET_DIR"))
|
||
|
|
(subpath (param "TMP_DIR"))
|
||
|
|
(subpath (param "CACHE_DIR"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.gemini"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.npm"))
|
||
|
|
(subpath (string-append (param "HOME_DIR") "/.cache"))
|
||
|
|
(subpath (param "INCLUDE_DIR_0"))
|
||
|
|
(subpath (param "INCLUDE_DIR_1"))
|
||
|
|
(subpath (param "INCLUDE_DIR_2"))
|
||
|
|
(subpath (param "INCLUDE_DIR_3"))
|
||
|
|
(subpath (param "INCLUDE_DIR_4"))
|
||
|
|
(literal "/dev/stdout")
|
||
|
|
(literal "/dev/stderr")
|
||
|
|
(literal "/dev/null")
|
||
|
|
)
|
||
|
|
(allow mach-lookup (global-name "com.apple.sysmond"))
|
||
|
|
(allow file-ioctl (regex #"^/dev/tty.*"))
|
||
|
|
(allow network-inbound (local ip "localhost:9229"))
|
||
|
|
(allow network-outbound (remote tcp "localhost:8877"))`,
|
||
|
|
};
|
||
|
|
|
||
|
|
// Map standard 'closed' profiles to their strict counterparts for backward compatibility and fallback support
|
||
|
|
BUILTIN_SEATBELT_PROFILE_CONTENTS['permissive-closed'] =
|
||
|
|
BUILTIN_SEATBELT_PROFILE_CONTENTS['strict-open'];
|
||
|
|
BUILTIN_SEATBELT_PROFILE_CONTENTS['restrictive-closed'] =
|
||
|
|
BUILTIN_SEATBELT_PROFILE_CONTENTS['strict-proxied'];
|