1# HwBinder IPC from client to server, and callbacks
2binder_call(hal_wifi_client, hal_wifi_server)
3binder_call(hal_wifi_server, hal_wifi_client)
4
5add_hwservice(hal_wifi_server, hal_wifi_hwservice)
6allow hal_wifi_client hal_wifi_hwservice:hwservice_manager find;
7
8r_dir_file(hal_wifi, proc_net)
9r_dir_file(hal_wifi, sysfs_type)
10
11set_prop(hal_wifi, wifi_prop)
12
13# allow hal wifi set interfaces up and down
14allow hal_wifi self:udp_socket create_socket_perms;
15allowxperm hal_wifi self:udp_socket ioctl { SIOCSIFFLAGS };
16
17allow hal_wifi self:capability { net_admin net_raw };
18# allow hal_wifi to speak to nl80211 in the kernel
19allow hal_wifi self:netlink_socket create_socket_perms_no_ioctl;
20# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets
21allow hal_wifi self:netlink_generic_socket create_socket_perms_no_ioctl;
22# hal_wifi writes firmware paths to this file.
23allow hal_wifi sysfs_wlan_fwpath:file { w_file_perms };
24# allow hal_wifi to access /proc/modules to check if Wi-Fi driver is loaded
25allow hal_wifi proc_modules:file { getattr open read };
26