# Allow wifi hal access to LOWI
allow hal_wifi location:unix_stream_socket connectto;
allow hal_wifi location_data_file:sock_file write;

# write to files owned by location daemon
typeattribute hal_wifi_default data_between_core_and_vendor_violators;
allow hal_wifi location_data_file:dir create_dir_perms;
allow hal_wifi location_data_file:{ file fifo_file } create_file_perms;

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

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 debugfs_wlan:dir r_dir_perms;
')
dontaudit hal_wifi debugfs_wlan:dir r_dir_perms;
