blob: 3243ddb5f31937f589d0df6d10872456880c542f [file] [log] [blame]
Nick Kralevich2b392fc2013-12-05 16:55:34 -08001# lmkd low memory killer daemon
Stephen Smalleycbc52792014-09-11 15:51:28 -04002type lmkd, domain, mlstrustedsubject;
Nick Kralevich2b392fc2013-12-05 16:55:34 -08003type lmkd_exec, exec_type, file_type;
4
5init_daemon_domain(lmkd)
Nick Kralevich5467fce2014-02-13 12:19:50 -08006
Nick Kralevich24be3912014-02-27 15:38:45 -08007allow lmkd self:capability { dac_override sys_resource kill };
Nick Kralevich5467fce2014-02-13 12:19:50 -08008
Nick Kralevich6a1405d2014-07-16 11:45:51 -07009# lmkd locks itself in memory, to prevent it from being
10# swapped out and unable to kill other memory hogs.
11# system/core commit b28ff9131363f7b4a698990da5748b2a88c3ed35
12# b/16236289
13allow lmkd self:capability ipc_lock;
14
Nick Kralevich5467fce2014-02-13 12:19:50 -080015## Open and write to /proc/PID/oom_score_adj
16## TODO: maybe scope this down?
17r_dir_file(lmkd, appdomain)
18allow lmkd appdomain:file write;
19r_dir_file(lmkd, system_server)
20allow lmkd system_server:file write;
21
22## Writes to /sys/module/lowmemorykiller/parameters/minfree
23allow lmkd sysfs_lowmemorykiller:file w_file_perms;
Nick Kralevich23a52e62014-03-04 17:15:13 -080024
25# Send kill signals
26allow lmkd appdomain:process sigkill;
Colin Cross53297312014-07-14 17:39:15 -070027
28# Clean up old cgroups
29allow lmkd cgroup:dir { remove_name rmdir };
30
31# Set self to SCHED_FIFO
32allow lmkd self:capability sys_nice;
Nick Kralevich8a5b28d2014-07-16 18:42:36 -070033
34### neverallow rules
35
36# never honor LD_PRELOAD
37neverallow domain lmkd:process noatsecure;