# wifi connection service
type conn_init, domain;
type conn_init_exec, exec_type, file_type;

init_daemon_domain(conn_init)

# Runs init.flo.wifi.sh
allow conn_init shell_exec:file { entrypoint read };
allow conn_init conn_init_exec:file rx_file_perms;

# Allow /persist/wifi access
allow conn_init { persist_file persist_wifi_file }:dir search;
allow conn_init persist_wifi_file:file r_file_perms;

# Allow /data/misc/wifi access for firmware files
allow conn_init wifi_data_file:dir w_dir_perms;
allow conn_init wifi_data_file:file create_file_perms;

allow conn_init wlan_device:chr_file rw_file_perms;

# init.flo.wifi.sh runs toolbox
allow conn_init system_file:file execute_no_trans;
