4ab64c940f
Conservatively grant access to packages_list_file to everything that had access to system_data_file:file even if the comment in the SELinux policy suggests it was for another use. Ran a diff on the resulting SEPolicy, the only difference of domains being granted is those that had system_data_file:dir permissiosn which is clearly not applicable for packages.list diff -u0 <(sesearch --allow -t system_data_file ~/sepolicy | sed 's/system_data_file/packages_list_file/') <(sesearch --allow -t packages_list_file ~/sepolicy_new) --- /proc/self/fd/16 2019-03-19 20:01:44.378409146 +0000 +++ /proc/self/fd/18 2019-03-19 20:01:44.378409146 +0000 @@ -3 +2,0 @@ -allow appdomain packages_list_file:dir getattr; @@ -6 +4,0 @@ -allow coredomain packages_list_file:dir getattr; @@ -8 +5,0 @@ -allow domain packages_list_file:dir search; @@ -35 +31,0 @@ -allow system_server packages_list_file:dir { rename search setattr read lock create reparent getattr write relabelfrom ioctl rmdir remove_name open add_name }; @@ -40 +35,0 @@ -allow tee packages_list_file:dir { search read lock getattr ioctl open }; @@ -43,3 +37,0 @@ -allow traced_probes packages_list_file:dir { read getattr open search }; -allow vendor_init packages_list_file:dir { search setattr read create getattr write relabelfrom ioctl rmdir remove_name open add_name }; -allow vold packages_list_file:dir { search setattr read lock create getattr mounton write ioctl rmdir remove_name open add_name }; @@ -48 +39,0 @@ -allow vold_prepare_subdirs packages_list_file:dir { read write relabelfrom rmdir remove_name open add_name }; @@ -50 +40,0 @@ -allow zygote packages_list_file:dir { search read lock getattr ioctl open }; Bug: 123186697 Change-Id: Ieabf313653deb5314872b63cd47dadd535af7b07
43 lines
1.5 KiB
Text
43 lines
1.5 KiB
Text
type runas, domain, mlstrustedsubject;
|
|
type runas_exec, system_file_type, exec_type, file_type;
|
|
|
|
allow runas adbd:fd use;
|
|
allow runas adbd:process sigchld;
|
|
allow runas adbd:unix_stream_socket { read write };
|
|
allow runas shell:fd use;
|
|
allow runas shell:fifo_file { read write };
|
|
allow runas shell:unix_stream_socket { read write };
|
|
allow runas devpts:chr_file { read write ioctl };
|
|
allow runas shell_data_file:file { read write };
|
|
|
|
# run-as reads package information.
|
|
allow runas system_data_file:file r_file_perms;
|
|
allow runas system_data_file:lnk_file getattr;
|
|
allow runas packages_list_file:file r_file_perms;
|
|
|
|
# The app's data dir may be accessed through a symlink.
|
|
allow runas system_data_file:lnk_file read;
|
|
|
|
# run-as checks and changes to the app data dir.
|
|
dontaudit runas self:global_capability_class_set { dac_override dac_read_search };
|
|
allow runas app_data_file:dir { getattr search };
|
|
|
|
# run-as switches to the app UID/GID.
|
|
allow runas self:global_capability_class_set { setuid setgid };
|
|
|
|
# run-as switches to the app security context.
|
|
selinux_check_context(runas) # validate context
|
|
allow runas self:process setcurrent;
|
|
allow runas non_system_app_set:process dyntransition; # setcon
|
|
|
|
# runas/libselinux needs access to seapp_contexts_file to
|
|
# determine which domain to transition to.
|
|
allow runas seapp_contexts_file:file r_file_perms;
|
|
|
|
###
|
|
### neverallow rules
|
|
###
|
|
|
|
# run-as cannot have capabilities other than CAP_SETUID and CAP_SETGID
|
|
neverallow runas self:global_capability_class_set ~{ setuid setgid };
|
|
neverallow runas self:global_capability2_class_set *;
|