platform_system_sepolicy/private/llkd.te
Thiébaud Weksteen 40dd3b3004 Allow llkd to stat() /proc/sysrq-trigger
06-26 20:01:16.860   971   971 I auditd  : type=1400 audit(0.0:8): avc: denied { getattr } for comm="llkd" path="/proc/sysrq-trigger" dev="proc" ino=4026532062 scontext=u:r:llkd:s0 tcontext=u:object_r:proc_sysrq:s0 tclass=file permissive=0

Bug: 192305350
Test: Build for aosp_arm64-eng
Change-Id: Ia6342ebc974f469e0e5d5e2f527d870c8a686b87
2021-07-02 15:55:38 +02:00

53 lines
1.5 KiB
Text

# llkd Live LocK Daemon
typeattribute llkd coredomain;
init_daemon_domain(llkd)
get_prop(llkd, llkd_prop)
allow llkd self:global_capability_class_set kill;
userdebug_or_eng(`
allow llkd self:global_capability_class_set { sys_ptrace sys_admin };
allow llkd self:global_capability_class_set { dac_override dac_read_search };
')
# llkd optionally locks itself in memory, to prevent it from being
# swapped out and unable to discover a kernel in live-lock state.
allow llkd self:global_capability_class_set ipc_lock;
# Send kill signals to _anyone_ suffering from Live Lock
allow llkd domain:process sigkill;
# read stack to check for Live Lock
userdebug_or_eng(`
allow llkd {
domain
-apexd
-kernel
-keystore
-init
-llkd
-ueventd
-vendor_init
}:process ptrace;
')
# live lock watchdog process allowed to look through /proc/
allow llkd domain:dir r_dir_perms;
allow llkd domain:file r_file_perms;
allow llkd domain:lnk_file read;
# Set /proc/sys/kernel/hung_task_*
allow llkd proc_hung_task:file rw_file_perms;
# live lock watchdog process allowed to dump process trace and
# reboot because orderly shutdown may not be possible.
allow llkd proc_sysrq:file rw_file_perms;
allow llkd kmsg_device:chr_file w_file_perms;
### neverallow rules
neverallow { domain -init } llkd:process { dyntransition transition };
neverallow { domain userdebug_or_eng(`-crash_dump') } llkd:process ptrace;
# never honor LD_PRELOAD
neverallow * llkd:process noatsecure;