# Allow wifi hal access to LOWI
allow hal_wifi_default location:unix_stream_socket connectto;

# write to files owned by location daemon
allow hal_wifi_default location_socket:dir search;
allow hal_wifi_default location_socket:sock_file write;
allow hal_wifi_default location_data_file:{ file fifo_file } create_file_perms;

allow hal_wifi_default wlan_device:chr_file w_file_perms;

# Allow wifi hal to read debug info from the driver.
r_dir_file(hal_wifi_default, proc_wifi_dbg)

# Write wlan driver/fw version into property
set_prop(hal_wifi_default, vendor_wifi_version)

dontaudit hal_wifi_default kernel:system module_request;
dontaudit hal_wifi_default self:capability sys_module;

userdebug_or_eng(`
# debugfs entries are only needed in user-debug or eng builds

# Allow wifi hal to access wlan debugfs files and directories
allow hal_wifi_default debugfs_wlan:dir r_dir_perms;
')
