0c8286fe74
They are introduced for the device owner process logging feature. That is, for enterprise-owned devices with device owner app provisioned, the device owner may choose to turn on additional device-wide logging for auditing and intrusion detection purposes. Logging includes histories of app process startup, commands issued over ADB and lockscreen unlocking attempts. These logs will available to the device owner for analysis, potentially shipped to a remote server if it chooses to. ro.device_owner will be a master switch to turn off logging, if the device has no device owner provisioned. persist.logd.security is a switch that device owner can toggle (via DevicePoliyManager) to enable/disable logging. Writing to both properties should be only allowed by the system server. Bug: 22860162 Change-Id: Iabfe2347b094914813b9d6e0c808877c25ccd038
54 lines
1.6 KiB
Text
54 lines
1.6 KiB
Text
# android user-space log manager
|
|
type logd, domain, domain_deprecated, 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;
|
|
allow logd system_data_file:file r_file_perms;
|
|
# logpersist is only allowed on userdebug and eng builds
|
|
userdebug_or_eng(`
|
|
allow logd misc_logd_file:file create_file_perms;
|
|
allow logd misc_logd_file:dir rw_dir_perms;
|
|
')
|
|
allow logd pstorefs:dir search;
|
|
allow logd pstorefs:file r_file_perms;
|
|
|
|
# Access device logging gating property
|
|
get_prop(logd, device_logging_prop)
|
|
|
|
r_dir_file(logd, domain)
|
|
|
|
allow logd kernel:system syslog_mod;
|
|
|
|
control_logd(logd)
|
|
|
|
# case where logpersistd is actually logcat -f in logd context (nee: logcatd)
|
|
userdebug_or_eng(`
|
|
unix_socket_connect(logd, logdr, logd)
|
|
')
|
|
|
|
###
|
|
### 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;
|
|
|
|
# logd is not allowed to write anywhere other than /misc/data/logd, and then
|
|
# only on userdebug or eng builds
|
|
neverallow logd { file_type -logd_tmpfs userdebug_or_eng(` -misc_logd_file -coredump_file ') }:file write;
|