From d345906b144806fe01976c9315a894dc1643aa19 Mon Sep 17 00:00:00 2001 From: Jin Qian <jinqian@google.com> Date: Wed, 11 Jan 2017 16:20:49 -0800 Subject: [PATCH] Define policy for /proc/uid_io/stats New procfs file read by storaged to dump fg/bg IO usage. Remove kmsg rule since it's no longer used by storaged. Allow storaged to find permission_service to translate UID to package name. Test: adb shell storaged -u Bug: 34198239 Change-Id: I74654662c75571cbe166cf2b8cbab84828218cbd --- private/genfs_contexts | 1 + private/storaged.te | 8 +++++--- public/file.te | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/private/genfs_contexts b/private/genfs_contexts index 638610112..efdfb422c 100644 --- a/private/genfs_contexts +++ b/private/genfs_contexts @@ -32,6 +32,7 @@ genfscon proc /timer_stats u:object_r:proc_timer:s0 genfscon proc /tty/drivers u:object_r:proc_tty_drivers:s0 genfscon proc /uid_cputime/show_uid_stat u:object_r:proc_uid_cputime_showstat:s0 genfscon proc /uid_cputime/remove_uid_range u:object_r:proc_uid_cputime_removeuid:s0 +genfscon proc /uid_io/stats u:object_r:proc_uid_io_stats:s0 genfscon proc /uid_procstat/set u:object_r:proc_uid_procstat_set:s0 genfscon proc /zoneinfo u:object_r:proc_zoneinfo:s0 diff --git a/private/storaged.te b/private/storaged.te index 684f617bc..6b7fa50ce 100644 --- a/private/storaged.te +++ b/private/storaged.te @@ -4,14 +4,14 @@ type storaged_exec, exec_type, file_type; init_daemon_domain(storaged) -# Write to /dev/kmsg (opened in init) -allow storaged kmsg_device:chr_file { write append }; - # Read access to pseudo filesystems r_dir_file(storaged, sysfs_type) r_dir_file(storaged, proc_net) r_dir_file(storaged, domain) +# Read /proc/uid_io/stats +allow storaged proc_uid_io_stats:file r_file_perms; + allow storaged self:capability { setgid setuid sys_nice sys_ptrace }; userdebug_or_eng(` @@ -22,6 +22,8 @@ userdebug_or_eng(` # Binder permissions allow storaged storaged_service:service_manager add; +allow storaged permission_service:service_manager find; + binder_use(storaged) binder_call(storaged, system_server) diff --git a/public/file.te b/public/file.te index 99c2a9e57..077b25a5f 100644 --- a/public/file.te +++ b/public/file.te @@ -23,6 +23,7 @@ type proc_timer, fs_type; type proc_tty_drivers, fs_type; type proc_uid_cputime_showstat, fs_type; type proc_uid_cputime_removeuid, fs_type; +type proc_uid_io_stats, fs_type; type proc_uid_procstat_set, fs_type; type proc_zoneinfo, fs_type; type selinuxfs, fs_type, mlstrustedobject; -- GitLab