# allow power hal to adjust max frequency
allow system_server sysfs_devices_system_cpu:file w_file_perms;
allow system_server gpu_freq_device:chr_file w_file_perms;

allow system_server gps_data_file:fifo_file { setattr create_file_perms };
allow system_server gps_data_file:dir rw_dir_perms;

# Grant access to Qualcomm MSM Interface (QMI) radio sockets for GPS
qmux_socket(system_server)

r_dir_file(system_server, debugfs_nvmap)

allow system_server sysfs_gpu:file r_file_perms;
allow system_server sysfs_socinfo:file r_file_perms;
allow system_server sysfs_swap:file r_file_perms;

unix_socket_connect(system_server, gps, gpsd)
allow system_server gps_device:chr_file rw_file_perms;
