From eb7340d94ed44b16cdb731590577a177e7046375 Mon Sep 17 00:00:00 2001 From: Paul Crowley <paulcrowley@google.com> Date: Mon, 16 Oct 2017 16:52:44 -0700 Subject: [PATCH] vold_prepare_subdirs needs to recursively delete Bug: 25861755 Test: Boot device, create user, create files, remove user, observe logs Change-Id: I195514eb45a99c1093998786ab385338463269c0 --- public/vold.te | 6 +++--- public/vold_prepare_subdirs.te | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/public/vold.te b/public/vold.te index 197eead7f..2c2f14705 100644 --- a/public/vold.te +++ b/public/vold.te @@ -199,10 +199,10 @@ allow vold user_profile_data_file:dir create_dir_perms; # Raw writes to misc block device allow vold misc_block_device:blk_file w_file_perms; -neverallow { domain -vold } vold_data_file:dir ~{ open create read getattr setattr search relabelto ioctl }; -neverallow { domain -vold -kernel } vold_data_file:notdevfile_class_set ~{ relabelto getattr }; +neverallow { domain -vold -vold_prepare_subdirs } vold_data_file:dir ~{ open create read getattr setattr search relabelto ioctl }; +neverallow { domain -vold -vold_prepare_subdirs -kernel } vold_data_file:notdevfile_class_set ~{ relabelto getattr }; neverallow { domain -vold -init -vold_prepare_subdirs } vold_data_file:dir *; -neverallow { domain -vold -init -kernel } vold_data_file:notdevfile_class_set *; +neverallow { domain -vold -init -vold_prepare_subdirs -kernel } vold_data_file:notdevfile_class_set *; neverallow { domain -vold -init } restorecon_prop:property_service set; # Only system_server and vdc can interact with vold over binder diff --git a/public/vold_prepare_subdirs.te b/public/vold_prepare_subdirs.te index ddb588238..cc4cdae8f 100644 --- a/public/vold_prepare_subdirs.te +++ b/public/vold_prepare_subdirs.te @@ -14,5 +14,6 @@ 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:capability dac_override; allow vold_prepare_subdirs self:process setfscreate; -allow vold_prepare_subdirs system_data_file:dir { add_name write }; -allow vold_prepare_subdirs vold_data_file:dir { create getattr setattr }; +allow vold_prepare_subdirs system_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 }; +allow vold_prepare_subdirs vold_data_file:file { getattr unlink }; -- GitLab