# android user-space log manager
type logd, domain, mlstrustedsubject;
type logd_exec, exec_type, file_type;

init_daemon_domain(logd)

allow logd self:capability { setuid setgid sys_nice audit_control };
allow logd self:capability2 syslog;
allow logd self:netlink_audit_socket { create_socket_perms nlmsg_write };
allow logd kernel:system syslog_read;
allow logd kmsg_device:chr_file w_file_perms;

r_dir_file(logd, domain)

userdebug_or_eng(`
  # Debug output
  type_transition logd device:file logd_debug;
  allow logd device:dir rw_dir_perms;
  allow logd logd_debug:file create_file_perms;
')

allow logd kernel:system syslog_mod;

###
### Neverallow rules
###
### logd should NEVER do any of this

# Block device access.
neverallow logd dev_type:blk_file { read write };

# ptrace any other app
neverallow logd domain:process ptrace;

# Write to /system.
neverallow logd system_file:dir_file_class_set write;

# Write to files in /data/data or system files on /data
neverallow logd { app_data_file system_data_file }:dir_file_class_set write;
