# Integrated qualcomm sensor process
type sensors, domain;
type sensors_exec, exec_type, file_type;

# STOPSHIP: Permissive is not allowed. CTS violation!
permissive sensors;

# Started by init
init_daemon_domain(sensors)

allow sensors shared_log_device:chr_file rw_file_perms;

# Access power management controls
allow sensors power_control_device:chr_file w_file_perms;

allow sensors sensors_device:chr_file rw_file_perms;
type_transition sensors socket_device:sock_file sensors_socket "sensor_ctl_socket";
allow sensors sensors_socket:sock_file create_file_perms;
allow sensors socket_device:dir { add_name write };
