# gps daemon sec label type gpsd, domain; type gpsd_exec, exec_type, file_type; init_daemon_domain(gpsd) wakelock_use(gpsd) # Automatically label files created in /data/system/gps as gps_data_file file_type_auto_trans(gpsd, system_data_file, gps_data_file) # Allow rild to connect to gpsd unix_socket_connect(gpsd, property, rild) allow gpsd system_server:unix_stream_socket { read write setopt }; binder_call(gpsd, system_server) binder_use(gpsd) # /dev/ttySAC0 allow gpsd bluetooth_device:chr_file { getattr setattr rw_file_perms }; allow gpsd gps_device:chr_file { getattr setattr rw_file_perms }; allow gpsd gps_data_file:dir { search write add_name remove_name }; allow gpsd gps_data_file:file { create rw_file_perms }; allow gpsd gps_data_file:fifo_file { unlink create setattr getattr rw_file_perms }; allow gpsd sysfs_wake_lock:file rw_file_perms; allow gpsd sysfs:file { open read getattr }; allow gpsd dnsproxyd_socket:sock_file write; allow gpsd fwmarkd_socket:sock_file write; allow gpsd netd:unix_stream_socket connectto; allow gpsd self:udp_socket { connect create read setopt write }; allow gpsd mif_device:chr_file r_file_perms; allow gpsd shell_exec:file { execute execute_no_trans getattr open read }; allow gpsd toolbox_exec:file { execute execute_no_trans getattr open read };