# ModemDiagnosticSystem app
type modem_diagnostic_app, domain;

app_domain(modem_diagnostic_app)
net_domain(modem_diagnostic_app)

allow modem_diagnostic_app app_api_service:service_manager find;
allow modem_diagnostic_app surfaceflinger_service:service_manager find;
allow modem_diagnostic_app radio_service:service_manager find;

userdebug_or_eng(`
  allow modem_diagnostic_app diag_device:chr_file rw_file_perms;

  allow modem_diagnostic_app sysfs_esim:file r_file_perms;

  allow modem_diagnostic_app ssr_log_file:dir r_dir_perms;
  allow modem_diagnostic_app ssr_log_file:file r_file_perms;

  unix_socket_connect(modem_diagnostic_app, diag, qlogd);

  set_prop(modem_diagnostic_app, vendor_modem_diag_prop)
  set_prop(modem_diagnostic_app, radio_control_prop)
')
