debuggerd.te 1.59 KB
Newer Older
Stephen Smalley's avatar
Stephen Smalley committed
1
# debugger interface
2
type debuggerd, domain, domain_deprecated;
Stephen Smalley's avatar
Stephen Smalley committed
3 4 5
type debuggerd_exec, exec_type, file_type;

init_daemon_domain(debuggerd)
6
typeattribute debuggerd mlstrustedsubject;
7
allow debuggerd self:capability { dac_override sys_ptrace chown kill fowner setuid setgid };
8 9 10
allow debuggerd self:capability2 { syslog };
allow debuggerd domain:dir r_dir_perms;
allow debuggerd domain:file r_file_perms;
11
allow debuggerd domain:lnk_file read;
12
allow debuggerd { domain -init -ueventd -watchdogd -healthd -adbd -keystore }:process { ptrace getattr };
13
security_access_policy(debuggerd)
14
allow debuggerd tombstone_data_file:dir rw_dir_perms;
15
allow debuggerd tombstone_data_file:file create_file_perms;
16 17
allow debuggerd shared_relro_file:dir r_dir_perms;
allow debuggerd shared_relro_file:file r_file_perms;
18 19 20 21
allow debuggerd domain:process { sigstop signal };
allow debuggerd exec_type:file r_file_perms;
# Access app library
allow debuggerd system_data_file:file open;
22 23 24 25
# Allow debuggerd to redirect a dump_backtrace request to itself.
# This only happens on 64 bit systems, where all requests go to the 64 bit
# debuggerd and get redirected to the 32 bit debuggerd if the process is 32 bit.
allow debuggerd { drmserver mediaserver sdcardd surfaceflinger inputflinger }:debuggerd dump_backtrace;
26 27 28

# Connect to system_server via /data/system/ndebugsocket.
unix_socket_connect(debuggerd, system_ndebug, system_server)
29

30 31 32 33 34
userdebug_or_eng(`
  allow debuggerd input_device:dir r_dir_perms;
  allow debuggerd input_device:chr_file rw_file_perms;
')

35 36
# logd access
read_logd(debuggerd)
37 38 39

# Check SELinux permissions.
selinux_check_access(debuggerd)