type irsc_util, domain;
type irsc_util_exec, exec_type, file_type;
init_daemon_domain(irsc_util)

userdebug_or_eng(`
  domain_auto_trans(shell, irsc_util_exec, irsc_util)
  domain_auto_trans(adbd, irsc_util_exec, irsc_util)
')

allow irsc_util irsc_util:socket {create ioctl};
create_pty(irsc_util)
allow irsc_util irsc_util_exec:file execute_no_trans;
