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 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)
  set_prop(modem_diagnostic_app, vendor_radio_prop)

  allow modem_diagnostic_app sysfs_batteryinfo:file r_file_perms;
  allow modem_diagnostic_app sysfs_batteryinfo:dir search;
')
