1 type crash_dump, domain; 2 type crash_dump_exec, exec_type, file_type; 3 4 allow crash_dump { 5 domain 6 -init 7 -crash_dump 8 -keystore 9 -logd 10 }:process { ptrace signal sigchld sigstop sigkill }; 11 12 # crash_dump might inherit CAP_SYS_PTRACE from a privileged process, 13 # which will result in an audit log even when it's allowed to trace. 14 dontaudit crash_dump self:global_capability_class_set { sys_ptrace }; 15 16 userdebug_or_eng(` 17 allow crash_dump logd:process { ptrace signal sigchld sigstop sigkill }; 18 19 # Let crash_dump write to /dev/kmsg_debug crashes that happen before logd comes up. 20 allow crash_dump kmsg_debug_device:chr_file { open append }; 21 ') 22 23 # Use inherited file descriptors 24 allow crash_dump domain:fd use; 25 26 # Read/write IPC pipes inherited from crashing processes. 27 allow crash_dump domain:fifo_file { read write }; 28 29 # Append to pipes given to us by processes requesting dumps (e.g. dumpstate) 30 allow crash_dump domain:fifo_file { append }; 31 32 r_dir_file(crash_dump, domain) 33 allow crash_dump exec_type:file r_file_perms; 34 35 # Read /data/dalvik-cache. 36 allow crash_dump dalvikcache_data_file:dir { search getattr }; 37 allow crash_dump dalvikcache_data_file:file r_file_perms; 38 39 # Read APK files. 40 r_dir_file(crash_dump, apk_data_file); 41 42 # Read all /vendor 43 r_dir_file(crash_dump, { vendor_file same_process_hal_file }) 44 45 # Talk to tombstoned 46 unix_socket_connect(crash_dump, tombstoned_crash, tombstoned) 47 48 # Talk to ActivityManager. 49 unix_socket_connect(crash_dump, system_ndebug, system_server) 50 51 # Append to ANR files. 52 allow crash_dump anr_data_file:file { append getattr }; 53 54 # Append to tombstone files. 55 allow crash_dump tombstone_data_file:file { append getattr }; 56 57 read_logd(crash_dump) 58 59 # Crash dump is not intended to access the following data types. Since these 60 # are WAI, suppress the denials to clean up the logs. 61 dontaudit crash_dump { 62 core_data_file_type 63 vendor_file_type 64 }:dir search; 65 dontaudit crash_dump system_data_file:file read; 66 67 ### 68 ### neverallow assertions 69 ### 70 71 # A domain transition must occur for crash_dump to get the privileges needed to trace the process. 72 # Do not allow the execution of crash_dump without a domain transition. 73 neverallow domain crash_dump_exec:file execute_no_trans; 74