# wifi legacy hal
type wifi_hal_legacy, domain;
type wifi_hal_legacy_exec, exec_type, file_type;

## hwbinder access
hwbinder_use(wifi_hal_legacy)

## call into wificond process (callbacks)
binder_call(wifi_hal_legacy, wificond)

r_dir_file(wifi_hal_legacy, proc_net)
r_dir_file(wifi_hal_legacy, sysfs_type)

allow wifi_hal_legacy self:udp_socket create_socket_perms;
allow wifi_hal_legacy self:capability { net_admin net_raw };
# allow wifi_hal_legacy to speak to nl80211 in the kernel
allow wifi_hal_legacy self:netlink_socket create_socket_perms_no_ioctl;
# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets
allow wifi_hal_legacy self:netlink_generic_socket create_socket_perms_no_ioctl;
