type adpl, domain;
type adpl_exec, exec_type, vendor_file_type, file_type;

userdebug_or_eng(`
  init_daemon_domain(adpl)

  allow adpl { rmnet_device ipa_dev }:chr_file rw_file_perms;
  allow adpl self:qipcrtr_socket create_socket_perms_no_ioctl;

  r_dir_file(adpl, sysfs_diag);
  allow adpl diag_device:chr_file rw_file_perms;

  #Allow adpl to create adpl socket
  allow adpl dataadpl_socket:sock_file rw_file_perms;

  allow adpl sysfs_timestamp_switch:file r_file_perms;
  allow adpl sysfs_msm_subsys:dir r_dir_perms;
  r_dir_file(adpl, sysfs_ssr)
  r_dir_file(adpl, sysfs_soc)
')