Skip to content
Snippets Groups Projects
  • Roshan Pius's avatar
    sepolicy: Allow hal_wifi to set wlan driver status prop · e62805d7
    Roshan Pius authored
    The new wifi HAL manages the wlan driver and hence needs to be able to
    load/unload the driver. The "wlan.driver.status" is used to indicate the
    state of the driver to the rest of the system. There are .rc scripts for
    example which wait for the state of this property.
    
    Denials:
    03-01 13:31:43.394   476   476 W android.hardwar: type=1400
    audit(0.0:7243): avc: denied { read } for name="u:object_r:wifi_prop:s0"
    dev="tmpfs" ino=10578 scontext=u:r:hal_wifi_default:s0
    tcontext=u:object_r:wifi_prop:s0 tclass=file permissive=0
    03-01 13:31:43.399   476   476 E libc    : Access denied finding
    property "wlan.driver.status"
    
    Bug: 35765841
    Test: Denials no longer seen
    Change-Id: I502494af7140864934038ef51cb0326ba3902c63
    e62805d7
hal_wifi.te 812 B
# HwBinder IPC from client to server, and callbacks
binder_call(hal_wifi_client, hal_wifi_server)
binder_call(hal_wifi_server, hal_wifi_client)

r_dir_file(hal_wifi, proc_net)
r_dir_file(hal_wifi, sysfs_type)

set_prop(hal_wifi, wifi_prop)

# allow hal wifi set interfaces up and down
allow hal_wifi self:udp_socket create_socket_perms;
allowxperm hal_wifi self:udp_socket ioctl { SIOCSIFFLAGS };

allow hal_wifi self:capability { net_admin net_raw };
# allow hal_wifi to speak to nl80211 in the kernel
allow hal_wifi self:netlink_socket create_socket_perms_no_ioctl;
# newer kernels (e.g. 4.4 but not 4.1) have a new class for sockets
allow hal_wifi self:netlink_generic_socket create_socket_perms_no_ioctl;
# hal_wifi writes firmware paths to this file.
allow hal_wifi sysfs_wlan_fwpath:file { w_file_perms };