Sandeep Patil | c6d8902 | 2017-04-14 19:06:56 -0700 | [diff] [blame] | 1 | typeattribute netutils_wrapper coredomain; |
| 2 | |
| 3 | r_dir_file(netutils_wrapper, system_file); |
| 4 | |
| 5 | # For netutils (ip, iptables, tc) |
Benjamin Gordon | 9b2e0cb | 2017-11-09 15:51:26 -0700 | [diff] [blame] | 6 | allow netutils_wrapper self:global_capability_class_set net_raw; |
Sandeep Patil | c6d8902 | 2017-04-14 19:06:56 -0700 | [diff] [blame] | 7 | |
| 8 | allow netutils_wrapper system_file:file { execute execute_no_trans }; |
Jeff Vander Stoep | 7a4af30 | 2018-04-10 12:47:48 -0700 | [diff] [blame] | 9 | allow netutils_wrapper proc_net_type:file { open read getattr }; |
Sandeep Patil | c6d8902 | 2017-04-14 19:06:56 -0700 | [diff] [blame] | 10 | allow netutils_wrapper self:rawip_socket create_socket_perms; |
| 11 | allow netutils_wrapper self:udp_socket create_socket_perms; |
Benjamin Gordon | 9b2e0cb | 2017-11-09 15:51:26 -0700 | [diff] [blame] | 12 | allow netutils_wrapper self:global_capability_class_set net_admin; |
Sandeep Patil | c6d8902 | 2017-04-14 19:06:56 -0700 | [diff] [blame] | 13 | # ip utils need everything but ioctl |
| 14 | allow netutils_wrapper self:netlink_route_socket ~ioctl; |
| 15 | allow netutils_wrapper self:netlink_xfrm_socket ~ioctl; |
| 16 | |
| 17 | # For netutils (ndc) to be able to talk to netd |
Luke Huang | 554b334 | 2019-03-19 15:07:00 +0800 | [diff] [blame] | 18 | allow netutils_wrapper netd_service:service_manager find; |
| 19 | allow netutils_wrapper dnsresolver_service:service_manager find; |
paulhu | 70b0a77 | 2021-12-09 11:49:23 +0800 | [diff] [blame] | 20 | allow netutils_wrapper mdns_service:service_manager find; |
Luke Huang | 554b334 | 2019-03-19 15:07:00 +0800 | [diff] [blame] | 21 | binder_use(netutils_wrapper); |
| 22 | binder_call(netutils_wrapper, netd); |
Sandeep Patil | c6d8902 | 2017-04-14 19:06:56 -0700 | [diff] [blame] | 23 | |
Chenbo Feng | 2623ebc | 2018-03-28 16:51:26 -0700 | [diff] [blame] | 24 | # For vendor code that update the iptables rules at runtime. They need to reload |
| 25 | # the whole chain including the xt_bpf rules. They need to access to the pinned |
| 26 | # program when reloading the rule. |
| 27 | allow netutils_wrapper fs_bpf:dir search; |
| 28 | allow netutils_wrapper fs_bpf:file { read write }; |
| 29 | allow netutils_wrapper bpfloader:bpf prog_run; |
| 30 | |
Sandeep Patil | c6d8902 | 2017-04-14 19:06:56 -0700 | [diff] [blame] | 31 | # For /data/misc/net access to ndc and ip |
| 32 | r_dir_file(netutils_wrapper, net_data_file) |
| 33 | |
| 34 | domain_auto_trans({ |
| 35 | domain |
| 36 | -coredomain |
| 37 | -appdomain |
| 38 | }, netutils_wrapper_exec, netutils_wrapper) |
Jeff Vander Stoep | f7a7f7d | 2018-04-11 10:46:30 -0700 | [diff] [blame] | 39 | |
| 40 | # suppress spurious denials |
| 41 | dontaudit netutils_wrapper self:global_capability_class_set sys_resource; |
Jeff Vander Stoep | c510da9 | 2019-03-29 14:29:42 -0700 | [diff] [blame] | 42 | dontaudit netutils_wrapper sysfs_type:file read; |
Jeff Vander Stoep | f7a7f7d | 2018-04-11 10:46:30 -0700 | [diff] [blame] | 43 | |
| 44 | # netutils wrapper may only use the following capabilities. |
| 45 | neverallow netutils_wrapper self:global_capability_class_set ~{ net_admin net_raw }; |