vndbinder_use(hal_camera_default);
allow hal_camera_default sysfs_soc:dir search;
allow hal_camera_default sysfs_soc:file r_file_perms;
allow hal_camera_default sysfs_ssr:file r_file_perms;
allow hal_camera_default gpu_device:chr_file rw_file_perms;

# For camera hal to use factory calibration data
allow hal_camera_default mnt_vendor_file:dir search;
allow hal_camera_default persist_file:lnk_file read;
allow hal_camera_default persist_file:dir search;
allow hal_camera_default persist_camera_file:dir search;
allow hal_camera_default persist_camera_file:file r_file_perms;

# For camera hal to use system property
get_prop(hal_camera_default, vendor_display_prop)
set_prop(hal_camera_default, vendor_camera_prop)
get_prop(hal_camera_default, vendor_camera_ro_prop)

# For camera hal to talk with rlsservice
allow hal_camera_default rls_service:service_manager find;
binder_call(hal_camera_default, rlsservice)

# For camera hal to talk with gralloc
hal_client_domain(hal_camera_default, hal_graphics_allocator)
hal_client_domain(hal_camera_default, hal_graphics_composer)
allow hal_camera_default hal_graphics_mapper_hwservice:hwservice_manager find;

# QSPM hal service for accessing camera info
hal_client_domain(hal_camera_default, hal_qspmhal)

#For camera hal to talk with ECOService.
allow hal_camera_default eco_service:service_manager find;
binder_call(hal_camera_default, mediacodec)

# For camera hal to communicate with with power HAL
hal_client_domain(hal_camera_default, hal_power)

# For camera hal to communicate with the thermal HAL.
hal_client_domain(hal_camera_default, hal_thermal)

# For camera hal to control priority of current process
hal_client_domain(hal_camera_default, hal_configstore)
allow hal_camera_default self:capability sys_nice;
allow hal_camera_default self:qipcrtr_socket create_socket_perms_no_ioctl;

# For camera hal to talk with system server (for sensor access)
binder_call(hal_camera_default, sensor_service_server)

# For camera hal to talk with GPU and dontaudit unnecessary files in /sys
dontaudit hal_camera_default sysfs_msm_subsys:dir search;

# For camera hal to talk with NNAPI service
hal_client_domain(hal_camera_default, hal_neuralnetworks)

# For camera hal to set kernel driver scheduler policy
allow hal_camera_default kernel:process setsched;

# For camera debugging
userdebug_or_eng(`
  allow hal_camera_default camera_vendor_data_file:dir create_dir_perms;
  allow hal_camera_default camera_vendor_data_file:file create_file_perms;
')
