typeattribute netutils_wrapper coredomain;

r_dir_file(netutils_wrapper, system_file);

# For netutils (ip, iptables, tc)
allow netutils_wrapper self:capability net_raw;

allow netutils_wrapper system_file:file { execute execute_no_trans };
allow netutils_wrapper proc_net:file { open read getattr };
allow netutils_wrapper self:rawip_socket create_socket_perms;
allow netutils_wrapper self:udp_socket create_socket_perms;
allow netutils_wrapper self:capability net_admin;
# ip utils need everything but ioctl
allow netutils_wrapper self:netlink_route_socket ~ioctl;
allow netutils_wrapper self:netlink_xfrm_socket ~ioctl;

# For netutils (ndc) to be able to talk to netd
allow netutils_wrapper netd_socket:sock_file { open getattr read write append };
allow netutils_wrapper netd:unix_stream_socket { read getattr connectto };

# For /data/misc/net access to ndc and ip
r_dir_file(netutils_wrapper, net_data_file)

domain_auto_trans({
    domain
    -coredomain
    -appdomain
}, netutils_wrapper_exec, netutils_wrapper)
