# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# This file lists out the seccomp policy.

# The following are allowed syscalls for runtime_probe skeleton + DBus
clock_gettime: 1
pipe: 1
rt_sigaction: 1
epoll_create1: 1
getresuid32: 1
uname: 1
brk: 1
connect: 1
getsockname: 1
close: 1
poll: 1
stat64: 1
clock_getres: 1
write: 1
getegid32: 1
rt_sigprocmask: 1
send: 1
access: 1
ARM_set_tls: 1
_llseek: 1
getpid: 1
recvmsg: 1
signalfd4: 1
set_tid_address: 1
ugetrlimit: 1
getuid32: 1
read: 1
openat: 1
clone: 1
getgid32: 1
set_robust_list: 1
gettimeofday: 1
munmap: 1
fcntl64: 1
execve: 1
wait4: 1
gettid: 1
geteuid32: 1
fstat64: 1
pipe2: 1
epoll_ctl: 1
getresgid32: 1
epoll_wait: 1
sendmsg: 1

# The following are syscalls required for running "ectool battery"
getdents64: 1
uname: 1
brk: 1
close: 1
flock: 1
stat64: 1
write: 1
exit_group: 1
access: 1
ARM_set_tls: 1
getpid: 1
munmap: 1
dup2: 1
read: 1
openat: 1
set_robust_list: 1
# ioctl:
# arg1 == _IOC(_IOC_READ|_IOC_WRITE, 0xec, 0x1, 0x108) (0xc108ec01) ||
# arg1 == _IOC(_IOC_READ|_IOC_WRITE, 0xec, 0, 0x14) (0xc014ec00) ||
# arg1 == _IOC(_IOC_READ|_IOC_WRITE, 0x3a, 0, 1c) (0xc01c3a00)
# Driver type 0x3a (":") = CROS_EC_DEV_IOC
# (Old iotcl format, used by ChromeOS 3.18 and older)
#
# Driver type 0xec = CROS_EC_DEV_IOC_V2
# (New ioctl format,  used by ChromeOS 4.4 or later as well as upstream 4.0+)
# Please refer to src/platform/ec/util/cros_ec_dev.h for more info
ioctl: arg1 == 0xc108ec01 || arg1 == 0xc01c3a00 || arg1 == 0xc014ec00
# TODO(b/120826467) Disallow execve when accessing /dev/cros_ec
# without ectool is possible
execve: 1
lstat64: 1
fstat64: 1
prlimit64: 1
ftruncate: 1
mmap2: arg2 == PROT_READ || arg2 == PROT_READ|PROT_WRITE || arg2 == PROT_READ|PROT_EXEC
mprotect: arg2 == PROT_READ || arg2 == PROT_NONE
socket: arg0 == AF_UNIX && arg1 == SOCK_STREAM|SOCK_CLOEXEC && arg2 == 0
