# Policies for time daemon type time_daemon, domain, mlstrustedsubject; type time_daemon_exec, exec_type, vendor_file_type, file_type; type time_data_file, file_type, data_file_type; # Make transition to its own time_daemon domain from init init_daemon_domain(time_daemon) allow time_daemon smem_log_device:chr_file rw_file_perms; # Add rules for access permissions allow time_daemon rtc_device:chr_file r_file_perms; allow time_daemon alarm_device:chr_file rw_file_perms; allow time_daemon time_data_file:file create_file_perms; allow time_daemon time_data_file:dir w_dir_perms; allow time_daemon self:socket create_socket_perms_no_ioctl; allow time_daemon self:capability { setuid setgid sys_time }; allow time_daemon persist_time_file:file create_file_perms; allow time_daemon persist_time_file:dir w_dir_perms; allow time_daemon persist_file:dir search; r_dir_file(time_daemon, sysfs_esoc); userdebug_or_eng(` diag_use(time_daemon) ') allow time_daemon sysfs_data:file r_file_perms; allow time_daemon self:socket ioctl; allowxperm time_daemon self:socket ioctl msm_sock_ipc_ioctls; get_prop(time_daemon, alarm_boot_prop);