Home | History | Annotate | Download | only in public
      1 # HwBinder IPC from client to server, and callbacks
      2 binder_call(hal_wifi_client, hal_wifi_server)
      3 binder_call(hal_wifi_server, hal_wifi_client)
      4 
      5 add_hwservice(hal_wifi_server, hal_wifi_hwservice)
      6 allow hal_wifi_client hal_wifi_hwservice:hwservice_manager find;
      7 
      8 r_dir_file(hal_wifi, proc_net)
      9 r_dir_file(hal_wifi, sysfs_type)
     10 
     11 set_prop(hal_wifi, exported_wifi_prop)
     12 set_prop(hal_wifi, wifi_prop)
     13 
     14 # allow hal wifi set interfaces up and down
     15 allow hal_wifi self:udp_socket create_socket_perms;
     16 allowxperm hal_wifi self:udp_socket ioctl { SIOCSIFFLAGS SIOCSIFHWADDR };
     17 
     18 allow hal_wifi self:global_capability_class_set { net_admin net_raw };
     19 # allow hal_wifi to speak to nl80211 in the kernel
     20 allow 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
     22 allow hal_wifi self:netlink_generic_socket create_socket_perms_no_ioctl;
     23 # hal_wifi writes firmware paths to this file.
     24 allow 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
     26 allow hal_wifi proc_modules:file { getattr open read };
     27 
     28 # allow hal_wifi to write into /data/vendor/tombstones/wifi
     29 userdebug_or_eng(`
     30   allow hal_wifi_server tombstone_wifi_data_file:dir rw_dir_perms;
     31   allow hal_wifi_server tombstone_wifi_data_file:file create_file_perms;
     32 ')
     33