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 5hal_attribute_hwservice(hal_wifi, hal_wifi_hwservice) 6 7r_dir_file(hal_wifi, proc_net_type) 8r_dir_file(hal_wifi, sysfs_type) 9 10set_prop(hal_wifi_server, wifi_hal_prop) 11set_prop(hal_wifi, wifi_prop) 12userdebug_or_eng(`get_prop(hal_wifi, persist_vendor_debug_wifi_prop)') 13 14# allow hal wifi set interfaces up and down and get the factory MAC 15allow hal_wifi self:udp_socket create_socket_perms; 16allowxperm hal_wifi self:udp_socket ioctl { SIOCSIFFLAGS SIOCSIFHWADDR SIOCETHTOOL }; 17 18allow hal_wifi self:global_capability_class_set { net_admin net_raw }; 19# allow hal_wifi to speak to nl80211 in the kernel 20allow hal_wifi self:netlink_socket create_socket_perms_no_ioctl; 21# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets 22allow hal_wifi self:netlink_generic_socket create_socket_perms_no_ioctl; 23# hal_wifi writes firmware paths to this file. 24allow hal_wifi sysfs_wlan_fwpath:file { w_file_perms }; 25# allow hal_wifi to access /proc/modules to check if Wi-Fi driver is loaded 26allow hal_wifi proc_modules:file { getattr open read }; 27# Allow hal_wifi to send dump info to dumpstate 28allow hal_wifi dumpstate:fifo_file write; 29 30# allow hal_wifi to write into /data/vendor/tombstones/wifi 31allow hal_wifi_server tombstone_wifi_data_file:dir rw_dir_perms; 32allow hal_wifi_server tombstone_wifi_data_file:file create_file_perms; 33