type ramdump_app, domain;

userdebug_or_eng(`
  app_domain(ramdump_app)

  allow ramdump_app app_api_service:service_manager find;

  allow ramdump_app ramdump_vendor_data_file:file create_file_perms;
  allow ramdump_app ramdump_vendor_data_file:dir create_dir_perms;

  set_prop(ramdump_app, vendor_ramdump_prop)
  get_prop(ramdump_app, system_boot_reason_prop)

  # To access ramdumpfs.
  allow ramdump_app mnt_vendor_file:dir search;
  allow ramdump_app ramdump_vendor_mnt_file:dir create_dir_perms;
  allow ramdump_app ramdump_vendor_mnt_file:file create_file_perms;
')
