# loc_launcher service type location, domain; type location_exec, exec_type, file_type; init_daemon_domain(location) binder_use(location) binder_call(location, per_mgr) binder_call(location, system_server) qmux_socket(location) allow location system_server:unix_stream_socket { read write }; allow location location_data_file:dir rw_dir_perms; allow location location_data_file:file create_file_perms; allow location location_data_file:sock_file create_file_perms; allow location location_exec:file x_file_perms; allow location self:{ socket netlink_socket udp_socket } create_socket_perms; # create location socket location-mq-s allow location location_data_file:sock_file { create setattr unlink }; # daemon starts as root to obtain all DAC capabilities # TODO start as gps user and use filesystem-config to give # proper DAC capabilities. allow location self:capability { setuid setgid net_admin net_raw }; # execute /system/bin/lowi-server and /vendor/bin/slim_daemon allow location location_exec:file rx_file_perms; # slim_daemon receives data from Loc_hal_worker allow location self:socket create_socket_perms; allow location sensorservice_service:service_manager find; # subsystem ramdump for debug builds userdebug_or_eng(` allow location sysfs_ssr:dir r_dir_perms; allow location sysfs_ssr:lnk_file read; ')