allow hal_power_stats_default sysfs_msm_wlan:dir search; # Needed to traverse to wlan stats file
get_prop(hal_power_stats_default, exported_wifi_prop) # Needed to detect wifi on/off
r_dir_file(hal_power_stats_default, sysfs_power_stats)  # Needed to traverse platform low power stats
r_dir_file(hal_power_stats_default, sysfs_iio_devices) # Needed to traverse odpm files
r_dir_file(hal_power_stats_default, sysfs_msm_subsys) # Needed to traverse subsystem low power stats


vndbinder_use(hal_power_stats)
add_service(hal_power_stats_server, power_stats_service)

binder_call(hal_power_stats, citadeld)

dontaudit hal_power_stats_default sysfs_power_stats_ignore:file r_file_perms;
dontaudit hal_power_stats_default sysfs_power_stats_ignore:dir r_dir_perms;
