blob: 0e3cf68055f8406ea53a72d66441f35a8ebe70ff [file] [log] [blame]
Stephen Smalley2dd4e512012-01-04 12:33:27 -05001# debugger interface
Jeff Vander Stoepd22987b2015-11-03 09:54:39 -08002type debuggerd, domain, domain_deprecated;
Stephen Smalley2dd4e512012-01-04 12:33:27 -05003type debuggerd_exec, exec_type, file_type;
4
5init_daemon_domain(debuggerd)
Stephen Smalley258cb172013-10-29 14:42:35 -04006typeattribute debuggerd mlstrustedsubject;
7allow debuggerd self:capability { dac_override sys_ptrace chown kill fowner };
8allow debuggerd self:capability2 { syslog };
9allow debuggerd domain:dir r_dir_perms;
10allow debuggerd domain:file r_file_perms;
Elliott Hughes38138c22014-05-16 19:14:13 -070011allow debuggerd domain:lnk_file read;
Stephen Smalleyba992492014-07-24 15:25:43 -040012allow debuggerd { domain -init -ueventd -watchdogd -healthd -adbd -keystore }:process { ptrace getattr };
Stephen Smalley258cb172013-10-29 14:42:35 -040013security_access_policy(debuggerd)
14allow debuggerd system_data_file:dir create_dir_perms;
15allow debuggerd system_data_file:dir relabelfrom;
Nick Kralevich08f01a32013-07-12 15:38:41 -070016allow debuggerd tombstone_data_file:dir relabelto;
Stephen Smalley258cb172013-10-29 14:42:35 -040017allow debuggerd tombstone_data_file:dir create_dir_perms;
18allow debuggerd tombstone_data_file:file create_file_perms;
dcashmancd10eb92014-08-18 17:09:38 -070019allow debuggerd shared_relro_file:dir r_dir_perms;
20allow debuggerd shared_relro_file:file r_file_perms;
Stephen Smalley258cb172013-10-29 14:42:35 -040021allow debuggerd domain:process { sigstop signal };
22allow debuggerd exec_type:file r_file_perms;
23# Access app library
24allow debuggerd system_data_file:file open;
Christopher Ferrisb51c4dd2015-01-18 17:39:53 -080025# Allow debuggerd to redirect a dump_backtrace request to itself.
26# This only happens on 64 bit systems, where all requests go to the 64 bit
27# debuggerd and get redirected to the 32 bit debuggerd if the process is 32 bit.
28allow debuggerd { drmserver mediaserver sdcardd surfaceflinger inputflinger }:debuggerd dump_backtrace;
Stephen Smalley45ba6652013-09-27 10:24:49 -040029
30# Connect to system_server via /data/system/ndebugsocket.
31unix_socket_connect(debuggerd, system_ndebug, system_server)
Mark Salyzyn8ed750e2013-11-12 15:34:52 -080032
Nick Kralevich116a20f2014-02-05 16:36:25 -080033userdebug_or_eng(`
34 allow debuggerd input_device:dir r_dir_perms;
35 allow debuggerd input_device:chr_file rw_file_perms;
36')
37
Mark Salyzyn8ed750e2013-11-12 15:34:52 -080038# logd access
39read_logd(debuggerd)
Stephen Smalleyba992492014-07-24 15:25:43 -040040
41# Check SELinux permissions.
42selinux_check_access(debuggerd)