type postprocd, domain, domain_deprecated;
type postprocd_exec, exec_type, file_type;

# Started by init
init_daemon_domain(postprocd)

set_prop(postprocd, system_prop)

allow postprocd graphics_device:dir search;
allow postprocd graphics_device:chr_file rw_file_perms;
allow postprocd display_data_file:dir search;
allow postprocd sysfs_led:dir r_dir_perms;
allow postprocd sysfs_led:file rw_file_perms;
