blob: 5790e83380c0189cb42f5b3f65610850139ac81c [file] [log] [blame]
Stephen Smalley2dd4e512012-01-04 12:33:27 -05001# debugger interface
Nick Kralevich30603f12016-12-09 19:14:04 -08002type debuggerd, domain;
Stephen Smalley2dd4e512012-01-04 12:33:27 -05003type debuggerd_exec, exec_type, file_type;
4
Stephen Smalley258cb172013-10-29 14:42:35 -04005typeattribute debuggerd mlstrustedsubject;
Josh Gao2b93db72015-11-17 16:21:38 -08006allow debuggerd self:capability { dac_override sys_ptrace chown kill fowner setuid setgid };
Stephen Smalley258cb172013-10-29 14:42:35 -04007allow debuggerd self:capability2 { syslog };
8allow debuggerd domain:dir r_dir_perms;
9allow debuggerd domain:file r_file_perms;
Elliott Hughes38138c22014-05-16 19:14:13 -070010allow debuggerd domain:lnk_file read;
Nick Kralevich2d6fa722016-04-27 12:32:36 -070011allow debuggerd {
12 domain
13 -adbd
14 -debuggerd
15 -healthd
16 -init
17 -keystore
Nick Kralevichcb5f4a32016-12-05 14:01:28 -080018 -logd
Nick Kralevich2d6fa722016-04-27 12:32:36 -070019 -ueventd
20 -watchdogd
Janis Danisevskis071b9352016-09-14 10:00:13 +010021}:process { execmem ptrace getattr };
Nick Kralevichcb5f4a32016-12-05 14:01:28 -080022
23userdebug_or_eng(`
24 allow debuggerd logd:process { execmem ptrace getattr };
25')
26
Josh Gao2b93db72015-11-17 16:21:38 -080027allow debuggerd tombstone_data_file:dir rw_dir_perms;
Stephen Smalley258cb172013-10-29 14:42:35 -040028allow debuggerd tombstone_data_file:file create_file_perms;
dcashmancd10eb92014-08-18 17:09:38 -070029allow debuggerd shared_relro_file:dir r_dir_perms;
30allow debuggerd shared_relro_file:file r_file_perms;
Josh Gao48141c32016-03-08 18:02:15 -080031allow debuggerd domain:process { sigstop sigkill signal };
Nick Kralevich364fd192016-11-08 09:08:55 -080032allow debuggerd { exec_type libart_file }:file r_file_perms;
Nick Kralevich30603f12016-12-09 19:14:04 -080033allow debuggerd apk_data_file:file r_file_perms;
34allow debuggerd apk_data_file:dir search;
Stephen Smalley258cb172013-10-29 14:42:35 -040035# Access app library
36allow debuggerd system_data_file:file open;
Christopher Ferrisb51c4dd2015-01-18 17:39:53 -080037# Allow debuggerd to redirect a dump_backtrace request to itself.
38# This only happens on 64 bit systems, where all requests go to the 64 bit
39# debuggerd and get redirected to the 32 bit debuggerd if the process is 32 bit.
Chien-Yu Chene0378302015-12-03 16:10:05 -080040
Andreas Gampe0983db42016-05-11 18:40:27 -070041allow debuggerd {
42 audioserver
Andreas Gampecbfa8dd2016-05-12 17:28:34 -070043 bluetooth
Andreas Gampe0983db42016-05-11 18:40:27 -070044 cameraserver
45 drmserver
46 inputflinger
47 mediacodec
48 mediadrmserver
49 mediaextractor
50 mediaserver
51 sdcardd
52 surfaceflinger
53}:debuggerd dump_backtrace;
Stephen Smalley45ba6652013-09-27 10:24:49 -040054
55# Connect to system_server via /data/system/ndebugsocket.
56unix_socket_connect(debuggerd, system_ndebug, system_server)
Mark Salyzyn8ed750e2013-11-12 15:34:52 -080057
Nick Kralevich116a20f2014-02-05 16:36:25 -080058userdebug_or_eng(`
59 allow debuggerd input_device:dir r_dir_perms;
60 allow debuggerd input_device:chr_file rw_file_perms;
61')
62
Mark Salyzyn8ed750e2013-11-12 15:34:52 -080063# logd access
64read_logd(debuggerd)
Stephen Smalleyba992492014-07-24 15:25:43 -040065
66# Check SELinux permissions.
67selinux_check_access(debuggerd)
Jeff Vander Stoep7ef80732016-09-09 16:27:17 -070068
69# Read /data/dalvik-cache.
70allow debuggerd dalvikcache_data_file:dir { search getattr };
71allow debuggerd dalvikcache_data_file:file r_file_perms;