diff --git a/private/compat/26.0/26.0.cil b/private/compat/26.0/26.0.cil index 74fef1a9af0cab2df968dfcbe80fdbed81d6ead3..261fc6de2b9b065bad7edd516f58c5630a1f9e86 100644 --- a/private/compat/26.0/26.0.cil +++ b/private/compat/26.0/26.0.cil @@ -11,7 +11,6 @@ (type tracing_shell_writable) (type tracing_shell_writable_debug) (type webview_zygote_socket) -(type rild) (typeattributeset accessibility_service_26_0 (accessibility_service)) (typeattributeset account_service_26_0 (account_service)) diff --git a/private/compat/27.0/27.0.cil b/private/compat/27.0/27.0.cil index 791a6f19becc7130aec3e8697051d5f6f63a860b..1be82bfa5986908d9c10a7ce21bf41006d68114d 100644 --- a/private/compat/27.0/27.0.cil +++ b/private/compat/27.0/27.0.cil @@ -1,7 +1,6 @@ ;; types removed from current policy (type webview_zygote_socket) (type reboot_data_file) -(type rild) (expandtypeattribute (accessibility_service_27_0) true) (expandtypeattribute (account_service_27_0) true) diff --git a/public/domain.te b/public/domain.te index 46b624bc57c08f05a02d12d2644b68cfac645477..fc9c0a95ab5b765681315b717a2094bcf75b7f05 100644 --- a/public/domain.te +++ b/public/domain.te @@ -959,6 +959,7 @@ full_treble_only(` domain -coredomain -appdomain + -rild -vendor_executes_system_violators -vendor_init } { diff --git a/public/hal_neverallows.te b/public/hal_neverallows.te index ce4b48cd015a55982b6dfd586b6d4937425b8797..c866baeff9a8bff9821bb5a36be6ae0cefa6468a 100644 --- a/public/hal_neverallows.te +++ b/public/hal_neverallows.te @@ -5,7 +5,7 @@ neverallow { -hal_bluetooth_server -hal_wifi_server -hal_wifi_supplicant_server - -hal_telephony_server + -rild } self:global_capability_class_set { net_admin net_raw }; # Unless a HAL's job is to communicate over the network, or control network @@ -15,7 +15,7 @@ neverallow { -hal_tetheroffload_server -hal_wifi_server -hal_wifi_supplicant_server - -hal_telephony_server + -rild } domain:{ tcp_socket udp_socket rawip_socket } *; ### @@ -42,7 +42,7 @@ neverallow { neverallow { halserverdomain -hal_dumpstate_server - -hal_telephony_server + -rild } { file_type fs_type }:file execute_no_trans; # Do not allow a process other than init to transition into a HAL domain. neverallow { domain -init } halserverdomain:process transition; diff --git a/public/hal_telephony.te b/public/hal_telephony.te index 86f41cbea62db3232b204750cfaecbd76d389ce8..41cfd4bf3fa76cbdfdf7c94d974465975af46d0a 100644 --- a/public/hal_telephony.te +++ b/public/hal_telephony.te @@ -5,42 +5,3 @@ binder_call(hal_telephony_server, hal_telephony_client) add_hwservice(hal_telephony_server, hal_telephony_hwservice) allow hal_telephony_client hal_telephony_hwservice:hwservice_manager find; -allowxperm hal_telephony_server self:udp_socket ioctl priv_sock_ioctls; - -allow hal_telephony_server self:netlink_route_socket nlmsg_write; -allow hal_telephony_server kernel:system module_request; -allow hal_telephony_server self:global_capability_class_set { setpcap setgid setuid net_admin net_raw }; -allow hal_telephony_server alarm_device:chr_file rw_file_perms; -allow hal_telephony_server cgroup:dir create_dir_perms; -allow hal_telephony_server cgroup:{ file lnk_file } r_file_perms; -allow hal_telephony_server radio_device:chr_file rw_file_perms; -allow hal_telephony_server radio_device:blk_file r_file_perms; -allow hal_telephony_server mtd_device:dir search; -allow hal_telephony_server efs_file:dir create_dir_perms; -allow hal_telephony_server efs_file:file create_file_perms; -allow hal_telephony_server vendor_shell_exec:file rx_file_perms; -allow hal_telephony_server bluetooth_efs_file:file r_file_perms; -allow hal_telephony_server bluetooth_efs_file:dir r_dir_perms; -allow hal_telephony_server sdcard_type:dir r_dir_perms; - -# property service -set_prop(hal_telephony_server, radio_prop) -set_prop(hal_telephony_server, exported_radio_prop) -set_prop(hal_telephony_server, exported2_radio_prop) - -allow hal_telephony_server tty_device:chr_file rw_file_perms; - -# Allow hal_telephony_server to create and use netlink sockets. -allow hal_telephony_server self:netlink_socket create_socket_perms_no_ioctl; -allow hal_telephony_server self:netlink_generic_socket create_socket_perms_no_ioctl; -allow hal_telephony_server self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; - -# Access to wake locks -wakelock_use(hal_telephony_server) - -r_dir_file(hal_telephony_server, proc_net) -r_dir_file(hal_telephony_server, sysfs_type) -r_dir_file(hal_telephony_server, system_file) - -# granting the ioctl permission for hal_telephony_server should be device specific -allow hal_telephony_server self:socket create_socket_perms_no_ioctl; diff --git a/public/property.te b/public/property.te index cb839c955bbba0b183d25b693aed06f50485da6d..e4003326868a25c2e4aa9164638719098d5e9fe0 100644 --- a/public/property.te +++ b/public/property.te @@ -158,7 +158,7 @@ compatible_property_only(` domain -coredomain -appdomain - -hal_telephony_server + -rild -vendor_init } { exported_radio_prop @@ -203,7 +203,7 @@ compatible_property_only(` domain -coredomain -appdomain - -hal_telephony_server + -rild -vendor_init } { radio_prop diff --git a/public/radio.te b/public/radio.te index 4998a61cd804d81604f755e4c7b2249620168866..b66514c8308a3fdd6f30afc44bcd0dd04c394857 100644 --- a/public/radio.te +++ b/public/radio.te @@ -5,8 +5,8 @@ net_domain(radio) bluetooth_domain(radio) binder_service(radio) -# Talks to hal_telephony_server via the rild socket only for devices without full treble -not_full_treble(`unix_socket_connect(radio, rild, hal_telephony_server)') +# Talks to rild via the rild socket only for devices without full treble +not_full_treble(`unix_socket_connect(radio, rild, rild)') # Data file accesses. allow radio radio_data_file:dir create_dir_perms; diff --git a/public/rild.te b/public/rild.te new file mode 100644 index 0000000000000000000000000000000000000000..8cafd23e4c18bf204e3a747d97acddb56375cfa7 --- /dev/null +++ b/public/rild.te @@ -0,0 +1,45 @@ +# rild - radio interface layer daemon +type rild, domain; +hal_server_domain(rild, hal_telephony) + +net_domain(rild) +allowxperm rild self:udp_socket ioctl priv_sock_ioctls; + +allow rild self:netlink_route_socket nlmsg_write; +allow rild kernel:system module_request; +allow rild self:global_capability_class_set { setpcap setgid setuid net_admin net_raw }; +allow rild alarm_device:chr_file rw_file_perms; +allow rild cgroup:dir create_dir_perms; +allow rild cgroup:{ file lnk_file } r_file_perms; +allow rild radio_device:chr_file rw_file_perms; +allow rild radio_device:blk_file r_file_perms; +allow rild mtd_device:dir search; +allow rild efs_file:dir create_dir_perms; +allow rild efs_file:file create_file_perms; +allow rild shell_exec:file rx_file_perms; +allow rild bluetooth_efs_file:file r_file_perms; +allow rild bluetooth_efs_file:dir r_dir_perms; +allow rild sdcard_type:dir r_dir_perms; + +# property service +set_prop(rild, radio_prop) +set_prop(rild, exported_radio_prop) +set_prop(rild, exported2_radio_prop) + +allow rild tty_device:chr_file rw_file_perms; + +# Allow rild to create and use netlink sockets. +allow rild self:netlink_socket create_socket_perms_no_ioctl; +allow rild self:netlink_generic_socket create_socket_perms_no_ioctl; +allow rild self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl; + +# Access to wake locks +wakelock_use(rild) + +r_dir_file(rild, proc_net) +r_dir_file(rild, sysfs_type) +r_dir_file(rild, system_file) + +# granting the ioctl permission for rild should be device specific +allow rild self:socket create_socket_perms_no_ioctl; + diff --git a/vendor/rild.te b/vendor/rild.te index fc84ef706bedf7b3af76d96f3abc2a71fa1f409e..510a776c44ca3384dce724bc3b770e57877aa62d 100644 --- a/vendor/rild.te +++ b/vendor/rild.te @@ -1,8 +1,3 @@ -# rild - radio interface layer daemon -type rild, domain; -hal_server_domain(rild, hal_telephony) -net_domain(rild) - # type_transition must be private policy the domain_trans rules could stay # public, but conceptually should go with this type rild_exec, exec_type, vendor_file_type, file_type;