# read factory calibration and sensor configuration data
allow hal_sensors_default persist_file:dir search;
r_dir_file(hal_sensors_default, persist_sensors_file)

# interact with the sensors low power island (SLPI) CPU
allow hal_sensors_default self:socket { create ioctl read write };
allowxperm hal_sensors_default self:socket ioctl msm_sock_ipc_ioctls;
r_dir_file(hal_sensors_default, sysfs_msm_subsys);

allow hal_sensors_default qdsp_device:chr_file r_file_perms;

userdebug_or_eng(`
  r_dir_file(hal_sensors_default, sysfs_diag)
  allow hal_sensors_default sysfs_timestamp_switch:file r_file_perms;
  allow hal_sensors_default diag_device:chr_file rw_file_perms;
')
dontaudit hal_sensors_default diag_device:chr_file rw_file_perms;

# Allow communication with CHRE daemon via socket
allow hal_sensors_default chre:unix_stream_socket connectto;
allow hal_sensors_default chre_socket:sock_file write;
