From 855dd5a8562494f78f99e5bd5096f617ac70438f Mon Sep 17 00:00:00 2001 From: Joel Galenson <jgalenson@google.com> Date: Wed, 11 Apr 2018 12:13:25 -0700 Subject: [PATCH] Allow some vold_prepare_subdirs denials. This addresses the following denials: avc: denied { fowner } for comm="rm" scontext=u:r:vold_prepare_subdirs:s0 tcontext=u:r:vold_prepare_subdirs:s0 tclass=capability avc: denied { getattr } for comm="rm" scontext=u:r:vold_prepare_subdirs:s0 tcontext=u:object_r:storaged_data_file:s0 tclass=file avc: denied { relabelfrom } for comm="vold_prepare_su" name="storaged" scontext=u:r:vold_prepare_subdirs:s0 tcontext=u:object_r:system_data_file:s0 tclass=dir avc: denied { getattr } for comm="rm" scontext=u:r:vold_prepare_subdirs:s0 tcontext=u:object_r:system_data_file:s0 tclass=file Bug: 77875245 Test: Boot device. Change-Id: Id67bc99f151a6ccb9619bbfb7080452956405121 Test: Mislabel directories used by vold_prepare_subdirs, reboot, and ensure it can relabel them without denials. Test: Add user, reboot, delete user, reboot, observe no denials. --- private/vold_prepare_subdirs.te | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/private/vold_prepare_subdirs.te b/private/vold_prepare_subdirs.te index f93057e60..93d6c115b 100644 --- a/private/vold_prepare_subdirs.te +++ b/private/vold_prepare_subdirs.te @@ -7,13 +7,15 @@ allow vold_prepare_subdirs devpts:chr_file rw_file_perms; allow vold_prepare_subdirs vold:fd use; allow vold_prepare_subdirs vold:fifo_file { read write }; allow vold_prepare_subdirs file_contexts_file:file r_file_perms; -allow vold_prepare_subdirs self:global_capability_class_set { chown dac_override }; +allow vold_prepare_subdirs self:global_capability_class_set { chown dac_override fowner }; allow vold_prepare_subdirs self:process setfscreate; allow vold_prepare_subdirs { system_data_file vendor_data_file -}:dir { open read write add_name remove_name }; -allow vold_prepare_subdirs vold_data_file:dir { create open read write search getattr setattr remove_name rmdir }; +}:dir { open read write add_name remove_name relabelfrom }; +allow vold_prepare_subdirs system_data_file:file getattr; +allow vold_prepare_subdirs vold_data_file:dir { create open read write search getattr setattr remove_name rmdir relabelto }; allow vold_prepare_subdirs vold_data_file:file { getattr unlink }; -allow vold_prepare_subdirs storaged_data_file:dir create_dir_perms; -allow vold_prepare_subdirs fingerprint_vendor_data_file:dir create_dir_perms; +allow vold_prepare_subdirs storaged_data_file:dir { create_dir_perms relabelto }; +allow vold_prepare_subdirs storaged_data_file:file getattr; +allow vold_prepare_subdirs fingerprint_vendor_data_file:dir { create_dir_perms relabelto }; -- GitLab