type sectest, domain;
type sectest_exec, exec_type, file_type;
userdebug_or_eng(`
  init_daemon_domain(sectest)
  # allow sectest access to drm related paths
  allow sectest persist_file:dir r_dir_perms;
  r_dir_file(sectest, persist_data_file)
  # Write to drm related pieces of persist partition
  allow sectest persist_drm_file:dir create_dir_perms;
  allow sectest persist_drm_file:file create_file_perms;
  allow sectest tee_device:chr_file rw_file_perms;

  # Allow qseecom to qsee folder so that listeners can create
  # respective directories
  allow sectest data_qsee_file:dir create_dir_perms;
  allow sectest data_qsee_file:file create_file_perms;
')
