type logger_app, domain;

userdebug_or_eng(`
  app_domain(logger_app)
  net_domain(logger_app)

  allow logger_app app_api_service:service_manager find;

  allow logger_app vendor_radio_data_file:file create_file_perms;
  allow logger_app vendor_radio_data_file:dir create_dir_perms;

  allow logger_app tcpdump_vendor_data_file:dir create_dir_perms;
  allow logger_app tcpdump_vendor_data_file:file create_file_perms;

  allow logger_app cnss_vendor_data_file:dir create_dir_perms;
  allow logger_app cnss_vendor_data_file:file create_file_perms;

  set_prop(logger_app, vendor_cnss_diag_prop)
  set_prop(logger_app, vendor_tcpdump_log_prop)
  set_prop(logger_app, vendor_modem_diag_prop)
  set_prop(logger_app, vendor_wifi_sniffer_prop)
  set_prop(logger_app, vendor_usb_prop)
')
