diff --git a/prebuilts/api/26.0/26.0.cil b/prebuilts/api/26.0/26.0.cil index 4e35ce8058adc578c5cf08a3698a8b73ff137350..f4c8a4ae6bdde79cce6f2b62e602efd6562f3cea 100644 --- a/prebuilts/api/26.0/26.0.cil +++ b/prebuilts/api/26.0/26.0.cil @@ -102,7 +102,7 @@ (typeattributeset ctl_bootanim_prop_26_0 (ctl_bootanim_prop)) (typeattributeset ctl_bugreport_prop_26_0 (ctl_bugreport_prop)) (typeattributeset ctl_console_prop_26_0 (ctl_console_prop)) -(typeattributeset ctl_default_prop_26_0 (ctl_default_prop)) +(typeattributeset ctl_default_prop_26_0 (ctl_default_prop ctl_restart_prop ctl_start_prop ctl_stop_prop)) (typeattributeset ctl_dumpstate_prop_26_0 (ctl_dumpstate_prop)) (typeattributeset ctl_fuse_prop_26_0 (ctl_fuse_prop)) (typeattributeset ctl_mdnsd_prop_26_0 (ctl_mdnsd_prop)) diff --git a/private/compat/26.0/26.0.cil b/private/compat/26.0/26.0.cil index 8f4db87ab2d14707aa73c2d197f4675241ec38f9..ee53d77cfc577b75a48d2029b83f0a49e0ca4576 100644 --- a/private/compat/26.0/26.0.cil +++ b/private/compat/26.0/26.0.cil @@ -118,7 +118,7 @@ (typeattributeset ctl_bootanim_prop_26_0 (ctl_bootanim_prop)) (typeattributeset ctl_bugreport_prop_26_0 (ctl_bugreport_prop)) (typeattributeset ctl_console_prop_26_0 (ctl_console_prop)) -(typeattributeset ctl_default_prop_26_0 (ctl_default_prop)) +(typeattributeset ctl_default_prop_26_0 (ctl_default_prop ctl_restart_prop ctl_start_prop ctl_stop_prop)) (typeattributeset ctl_dumpstate_prop_26_0 (ctl_dumpstate_prop)) (typeattributeset ctl_fuse_prop_26_0 (ctl_fuse_prop)) (typeattributeset ctl_mdnsd_prop_26_0 (ctl_mdnsd_prop)) diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil index 8b4d69ca59e1367358ca64f3d87238106a83b1a7..b6782217eaeec91eca1f6ddf8d557bf24a6eba7b 100644 --- a/private/compat/26.0/26.0.ignore.cil +++ b/private/compat/26.0/26.0.ignore.cil @@ -17,6 +17,10 @@ broadcastradio_service cgroup_bpf crossprofileapps_service + ctl_interface_restart_prop + ctl_interface_start_prop + ctl_interface_stop_prop + ctl_sigstop_prop e2fs e2fs_exec exfat diff --git a/private/compat/27.0/27.0.cil b/private/compat/27.0/27.0.cil index a329389cd9202e144d19925d86795cd7c5264838..9f661b230da526c5b1497837f31709315c025a61 100644 --- a/private/compat/27.0/27.0.cil +++ b/private/compat/27.0/27.0.cil @@ -823,7 +823,7 @@ (typeattributeset ctl_bootanim_prop_27_0 (ctl_bootanim_prop)) (typeattributeset ctl_bugreport_prop_27_0 (ctl_bugreport_prop)) (typeattributeset ctl_console_prop_27_0 (ctl_console_prop)) -(typeattributeset ctl_default_prop_27_0 (ctl_default_prop)) +(typeattributeset ctl_default_prop_27_0 (ctl_default_prop ctl_restart_prop ctl_start_prop ctl_stop_prop)) (typeattributeset ctl_dumpstate_prop_27_0 (ctl_dumpstate_prop)) (typeattributeset ctl_fuse_prop_27_0 (ctl_fuse_prop)) (typeattributeset ctl_mdnsd_prop_27_0 (ctl_mdnsd_prop)) diff --git a/private/compat/27.0/27.0.ignore.cil b/private/compat/27.0/27.0.ignore.cil index d2ab474775cc4536330991ec306b932bdb055e95..06f85fc05ed9d2fd809b3865c3ef856f58bd27d8 100644 --- a/private/compat/27.0/27.0.ignore.cil +++ b/private/compat/27.0/27.0.ignore.cil @@ -15,6 +15,10 @@ bpfloader_exec cgroup_bpf crossprofileapps_service + ctl_interface_restart_prop + ctl_interface_start_prop + ctl_interface_stop_prop + ctl_sigstop_prop exfat exported2_config_prop exported2_default_prop diff --git a/private/hwservicemanager.te b/private/hwservicemanager.te index 45b62d075185c08f2c9d5a256757447e2d7b9612..0705cc711a933cc614bfec61d48143abaf554730 100644 --- a/private/hwservicemanager.te +++ b/private/hwservicemanager.te @@ -5,5 +5,4 @@ init_daemon_domain(hwservicemanager) add_hwservice(hwservicemanager, hidl_manager_hwservice) add_hwservice(hwservicemanager, hidl_token_hwservice) -set_prop(hwservicemanager, ctl_default_prop) -set_prop(hwservicemanager, ctl_dumpstate_prop) +set_prop(hwservicemanager, ctl_interface_start_prop) diff --git a/private/property_contexts b/private/property_contexts index 1b2743284669df8c5753ab3962a2dbec476269e3..32be0b3772fce8e5ce2fb6baa28abf4ca64035cd 100644 --- a/private/property_contexts +++ b/private/property_contexts @@ -104,6 +104,16 @@ ctl.bugreport u:object_r:ctl_bugreport_prop:s0 ctl.console u:object_r:ctl_console_prop:s0 ctl. u:object_r:ctl_default_prop:s0 +# Don't allow blind access to all services +ctl.sigstop_on$ u:object_r:ctl_sigstop_prop:s0 +ctl.sigstop_off$ u:object_r:ctl_sigstop_prop:s0 +ctl.start$ u:object_r:ctl_start_prop:s0 +ctl.stop$ u:object_r:ctl_stop_prop:s0 +ctl.restart$ u:object_r:ctl_restart_prop:s0 +ctl.interface_start$ u:object_r:ctl_interface_start_prop:s0 +ctl.interface_stop$ u:object_r:ctl_interface_stop_prop:s0 +ctl.interface_restart$ u:object_r:ctl_interface_restart_prop:s0 + # NFC properties nfc. u:object_r:nfc_prop:s0 diff --git a/public/property.te b/public/property.te index de8e4bec92d2f8480b5e305744dfbe4be8975fbe..f8dfb048488c65f3d7b8fd7a1de7a4a61a35f64c 100644 --- a/public/property.te +++ b/public/property.te @@ -11,8 +11,15 @@ type ctl_console_prop, property_type; type ctl_default_prop, property_type; type ctl_dumpstate_prop, property_type; type ctl_fuse_prop, property_type; +type ctl_interface_restart_prop, property_type; +type ctl_interface_start_prop, property_type; +type ctl_interface_stop_prop, property_type; type ctl_mdnsd_prop, property_type; +type ctl_restart_prop, property_type; type ctl_rildaemon_prop, property_type; +type ctl_sigstop_prop, property_type; +type ctl_start_prop, property_type; +type ctl_stop_prop, property_type; type dalvik_prop, property_type, core_property_type; type debuggerd_prop, property_type, core_property_type; type debug_prop, property_type, core_property_type; @@ -123,6 +130,27 @@ neverallow * { -vold_prop }:file no_rw_file_perms; +# sigstop property is only used for debugging; should only be set by su which is permissive +# for userdebug/eng +neverallow { + domain + -init + -vendor_init +} ctl_sigstop_prop:property_service set; + +# Don't audit legacy ctl. property handling. We only want the newer permission check to appear +# in the audit log +dontaudit domain { + ctl_bootanim_prop + ctl_bugreport_prop + ctl_console_prop + ctl_default_prop + ctl_dumpstate_prop + ctl_fuse_prop + ctl_mdnsd_prop + ctl_rildaemon_prop +}:property_service set; + compatible_property_only(` # Prevent properties from being set neverallow {