diff --git a/public/domain_deprecated.te b/public/domain_deprecated.te index a73233267ffdf2e6270511fc5484a0b859463f84..0a39b96cba6014fcaf27a0fb02e79b5a7190b6f0 100644 --- a/public/domain_deprecated.te +++ b/public/domain_deprecated.te @@ -2,7 +2,15 @@ # Search /storage/emulated tmpfs mount. allow domain_deprecated tmpfs:dir r_dir_perms; -auditallow { domain_deprecated -appdomain -init -sdcardd -surfaceflinger -system_server -vold -zygote } tmpfs:dir r_dir_perms; +auditallow { + domain_deprecated + -appdomain + -sdcardd + -surfaceflinger + -system_server + -vold + -zygote +} tmpfs:dir r_dir_perms; # Inherit or receive open files from others. allow domain_deprecated system_server:fd use; @@ -17,9 +25,41 @@ auditallow { domain_deprecated -appdomain -system_server } adbd:fd use; allow domain_deprecated rootfs:dir r_dir_perms; allow domain_deprecated rootfs:file r_file_perms; allow domain_deprecated rootfs:lnk_file r_file_perms; -auditallow { domain_deprecated -healthd -init -installd -servicemanager -system_server -ueventd -uncrypt -vold -zygote } rootfs:dir { open getattr read ioctl lock }; # search granted in domain -auditallow { domain_deprecated -healthd -init -installd -servicemanager -system_server -ueventd -uncrypt -vold -zygote } rootfs:file r_file_perms; -auditallow { domain_deprecated -appdomain -healthd -init -installd -servicemanager -system_server -ueventd -uncrypt -vold -zygote } rootfs:lnk_file { getattr open ioctl lock }; # read granted in domain +auditallow { + domain_deprecated + -fsck + -healthd + -installd + -servicemanager + -system_server + -ueventd + -uncrypt + -vold + -zygote +} rootfs:dir { open getattr read ioctl lock }; # search granted in domain +auditallow { + domain_deprecated + -healthd + -installd + -servicemanager + -system_server + -ueventd + -uncrypt + -vold + -zygote +} rootfs:file r_file_perms; +auditallow { + domain_deprecated + -appdomain + -healthd + -installd + -servicemanager + -system_server + -ueventd + -uncrypt + -vold + -zygote +} rootfs:lnk_file { getattr open ioctl lock }; # read granted in domain # System file accesses. allow domain_deprecated system_file:dir r_dir_perms; @@ -28,17 +68,18 @@ auditallow { domain_deprecated -appdomain -fingerprintd - -init -installd + -keystore -rild -surfaceflinger -system_server + -update_engine + -vold -zygote } system_file:dir { open read ioctl lock }; # search getattr in domain auditallow { domain_deprecated -appdomain - -init -rild -surfaceflinger -system_server @@ -48,25 +89,71 @@ auditallow { # Read files already opened under /data. allow domain_deprecated system_data_file:file { getattr read }; allow domain_deprecated system_data_file:lnk_file r_file_perms; -auditallow { domain_deprecated -appdomain -init -sdcardd -system_server -tee } system_data_file:file { getattr read }; -auditallow { domain_deprecated -appdomain -init -system_server -tee } system_data_file:lnk_file r_file_perms; +auditallow { + domain_deprecated + -appdomain + -sdcardd + -system_server + -tee +} system_data_file:file { getattr read }; +auditallow { + domain_deprecated + -appdomain + -system_server + -tee +} system_data_file:lnk_file r_file_perms; # Read apk files under /data/app. allow domain_deprecated apk_data_file:dir { getattr search }; allow domain_deprecated apk_data_file:file r_file_perms; allow domain_deprecated apk_data_file:lnk_file r_file_perms; -auditallow { domain_deprecated -appdomain -dex2oat -init -installd -system_server } apk_data_file:dir { getattr search }; -auditallow { domain_deprecated -appdomain -dex2oat -init -installd -system_server } apk_data_file:file r_file_perms; -auditallow { domain_deprecated -appdomain -dex2oat -installd -system_server } apk_data_file:lnk_file r_file_perms; +auditallow { + domain_deprecated + -appdomain + -dex2oat + -installd + -system_server +} apk_data_file:dir { getattr search }; +auditallow { + domain_deprecated + -appdomain + -dex2oat + -installd + -system_server +} apk_data_file:file r_file_perms; +auditallow { + domain_deprecated + -appdomain + -dex2oat + -installd + -system_server +} apk_data_file:lnk_file r_file_perms; # Read already opened /cache files. allow domain_deprecated cache_file:dir r_dir_perms; allow domain_deprecated cache_file:file { getattr read }; allow domain_deprecated cache_file:lnk_file r_file_perms; -auditallow { domain_deprecated -init -system_server -vold } cache_file:dir { open read search ioctl lock }; -auditallow { domain_deprecated -appdomain -init -system_server -vold } cache_file:dir getattr; -auditallow { domain_deprecated -init -system_server -vold } cache_file:file { getattr read }; -auditallow { domain_deprecated -init -system_server -vold } cache_file:lnk_file r_file_perms; +auditallow { + domain_deprecated + -system_server + -vold +} cache_file:dir { open read search ioctl lock }; +auditallow { + domain_deprecated + -appdomain + -system_server + -vold +} cache_file:dir getattr; +auditallow { + domain_deprecated + -system_server + -vold +} cache_file:file { getattr read }; +auditallow { + domain_deprecated + -system_server + -vold +} cache_file:lnk_file r_file_perms; #Allow access to ion memory allocation device allow domain_deprecated ion_device:chr_file rw_file_perms; @@ -81,18 +168,75 @@ r_dir_file(domain_deprecated, sysfs) r_dir_file(domain_deprecated, cgroup) allow domain_deprecated proc_meminfo:file r_file_perms; #auditallow domain_deprecated proc:dir r_dir_perms; # r_dir_perms granted in domain -auditallow { domain_deprecated -fsck -fsck_untrusted -init -rild -system_server -vold } proc:file r_file_perms; -auditallow { domain_deprecated -fsck -fsck_untrusted -init -rild -system_server -vold } proc:lnk_file { open ioctl lock }; # getattr read granted in domain -auditallow { domain_deprecated -bluetooth -fingerprintd -healthd -init -netd -rild -system_app -surfaceflinger -system_server -tee -ueventd -vold -wpa } sysfs:dir { open getattr read ioctl lock }; # search granted in domain -auditallow { domain_deprecated -bluetooth -fingerprintd -healthd -init -netd -rild -system_app -surfaceflinger -system_server -tee -ueventd -vold -wpa } sysfs:file r_file_perms; -auditallow { domain_deprecated -bluetooth -fingerprintd -healthd -init -netd -rild -system_app -surfaceflinger -system_server -tee -ueventd -vold -wpa } sysfs:lnk_file { getattr open ioctl lock }; # read granted in domain +auditallow { + domain_deprecated + -fsck + -fsck_untrusted + -rild + -sdcardd + -system_server + -update_engine + -vold +} proc:file r_file_perms; +auditallow { + domain_deprecated + -fsck + -fsck_untrusted + -rild + -system_server + -vold +} proc:lnk_file { open ioctl lock }; # getattr read granted in domain +auditallow { + domain_deprecated + -bluetooth + -fingerprintd + -healthd + -netd + -rild + -system_app + -surfaceflinger + -system_server + -tee + -ueventd + -vold + -wpa +} sysfs:dir { open getattr read ioctl lock }; # search granted in domain +auditallow { + domain_deprecated + -bluetooth + -fingerprintd + -healthd + -netd + -rild + -system_app + -surfaceflinger + -system_server + -tee + -ueventd + -vold + -wpa +} sysfs:file r_file_perms; +auditallow { + domain_deprecated + -bluetooth + -fingerprintd + -healthd + -netd + -rild + -system_app + -surfaceflinger + -system_server + -tee + -ueventd + -vold + -wpa +} sysfs:lnk_file { getattr open ioctl lock }; # read granted in domain auditallow { domain_deprecated -appdomain -dumpstate -fingerprintd -healthd - -init -inputflinger -installd -keystore @@ -108,7 +252,6 @@ auditallow { -dumpstate -fingerprintd -healthd - -init -inputflinger -installd -keystore @@ -118,10 +261,38 @@ auditallow { -system_server -zygote } cgroup:{ file lnk_file } r_file_perms; -auditallow { domain_deprecated -appdomain -init -surfaceflinger -system_server -vold } proc_meminfo:file r_file_perms; +auditallow { + domain_deprecated + -appdomain + -surfaceflinger + -system_server + -vold +} proc_meminfo:file r_file_perms; # Get SELinux enforcing status. allow domain_deprecated selinuxfs:dir r_dir_perms; allow domain_deprecated selinuxfs:file r_file_perms; -auditallow { domain_deprecated -appdomain -init -installd -keystore -postinstall_dexopt -runas -servicemanager -system_server -ueventd -zygote } selinuxfs:dir { open getattr read ioctl lock }; # search granted in domain -auditallow { domain_deprecated -appdomain -init -installd -keystore -postinstall_dexopt -runas -servicemanager -system_server -ueventd -zygote } selinuxfs:file { open read ioctl lock }; # getattr granted in domain +auditallow { + domain_deprecated + -appdomain + -installd + -keystore + -postinstall_dexopt + -runas + -servicemanager + -system_server + -ueventd + -zygote +} selinuxfs:dir { open getattr read ioctl lock }; # search granted in domain +auditallow { + domain_deprecated + -appdomain + -installd + -keystore + -postinstall_dexopt + -runas + -servicemanager + -system_server + -ueventd + -zygote +} selinuxfs:file { open read ioctl lock }; # getattr granted in domain diff --git a/public/fsck.te b/public/fsck.te index bdbbd33354d36d0f5e446b4364ea4d202598916a..2f0a838e2f68025f7a7b8aeda9aa925ee1b14b6e 100644 --- a/public/fsck.te +++ b/public/fsck.te @@ -24,6 +24,7 @@ allow fsck dm_device:blk_file rw_file_perms; allow fsck swap_block_device:blk_file getattr; r_dir_file(fsck, proc) +allow fsck rootfs:dir r_dir_perms; ### ### neverallow rules diff --git a/public/init.te b/public/init.te index 4d64aade6ce7cbcaae73625c699f745e40f6d3b7..fe72894395eecd1a190935cd506ce4199cee7cc2 100644 --- a/public/init.te +++ b/public/init.te @@ -1,5 +1,5 @@ # init is its own domain. -type init, domain, domain_deprecated, mlstrustedsubject; +type init, domain, mlstrustedsubject; # The init domain is entered by execing init. type init_exec, exec_type, file_type; @@ -175,6 +175,8 @@ allow init { -vold_data_file }:lnk_file { create getattr setattr relabelfrom unlink }; +allow init cache_file:lnk_file r_file_perms; + allow init { file_type -system_file -exec_type }:dir_file_class_set relabelto; allow init { sysfs debugfs debugfs_tracing }:{ dir file lnk_file } { getattr relabelfrom }; allow init { sysfs_type debugfs_type }:{ dir file lnk_file } relabelto; diff --git a/public/keystore.te b/public/keystore.te index 4dd65eb3a62cebf6678e24801bc737a54726ad09..ec6d1926f449f2619da6c27140c86b0bfe1299fe 100644 --- a/public/keystore.te +++ b/public/keystore.te @@ -25,6 +25,7 @@ selinux_check_access(keystore) allow keystore ion_device:chr_file r_file_perms; r_dir_file(keystore, cgroup) +allow keystore system_file:dir r_dir_perms; ### ### Neverallow rules diff --git a/public/sdcardd.te b/public/sdcardd.te index 6813aa67c49e363287592ed99634a40da358d477..3cb69be63bee5107753e91d48bb0292e9ac762dd 100644 --- a/public/sdcardd.te +++ b/public/sdcardd.te @@ -31,6 +31,9 @@ allow sdcardd vold:fifo_file { read write getattr }; # Allow running on top of expanded storage allow sdcardd mnt_expand_file:dir search; +# access /proc/filesystems +allow sdcardd proc:file r_file_perms; + ### ### neverallow rules ### diff --git a/public/update_engine_common.te b/public/update_engine_common.te index 29581dde41c459308084ce36386de454839c0385..9409947ab9e40a6bf030326b9321f021806d5ff8 100644 --- a/public/update_engine_common.te +++ b/public/update_engine_common.te @@ -32,3 +32,8 @@ allow update_engine_common shell_exec:file rx_file_perms; # Allow update_engine_common to suspend, resume and kill the postinstall program. allow update_engine_common postinstall:process { signal sigstop }; +# access /proc/misc +allow update_engine proc:file r_file_perms; + +# read directories on /system and /vendor +allow update_engine system_file:dir r_dir_perms; diff --git a/public/vold.te b/public/vold.te index dc8ca41f983a354f2d28506c61f523c89492320f..0e4eddc7065ab7726f5f21bcf5a67e35d630cf94 100644 --- a/public/vold.te +++ b/public/vold.te @@ -27,6 +27,7 @@ allow vold shell_exec:file rx_file_perms; typeattribute vold mlstrustedsubject; allow vold self:process setfscreate; +allow vold system_file:dir r_dir_perms; allow vold system_file:file x_file_perms; allow vold block_device:dir create_dir_perms; allow vold device:dir write;