type ramdump_app, domain;

userdebug_or_eng(`
  app_domain(ramdump_app)

  allow ramdump_app app_api_service:service_manager find;
  allow ramdump_app surfaceflinger_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)
')
