# SSRestartDetector app
type ssr_detector_app, domain;

app_domain(ssr_detector_app)

userdebug_or_eng(`
  allow ssr_detector_app ramdump_vendor_data_file:dir r_dir_perms;
  allow ssr_detector_app ramdump_vendor_data_file:file r_file_perms;
  get_prop(ssr_detector_app, vendor_ssr_prop)
')
get_prop(ssr_detector_app, vendor_wifi_version)

allow ssr_detector_app app_api_service:service_manager find;

# ssr_detector app's data type is system_app_data_file.
allow ssr_detector_app system_app_data_file:dir create_dir_perms;
allow ssr_detector_app system_app_data_file:{ file lnk_file } create_file_perms;

allow ssr_detector_app sysfs:lnk_file r_file_perms;

r_dir_file(ssr_detector_app, sysfs_msm_subsys)

allow ssr_detector_app cgroup:file w_file_perms;
