allow hal_fingerprint_default fingerprint_device:chr_file rw_file_perms;
allow hal_fingerprint_default tee_device:chr_file rw_file_perms;
allow hal_fingerprint_default sysfs_batteryinfo:file r_file_perms;
allow hal_fingerprint_default sysfs_batteryinfo:dir search;
allow hal_fingerprint_default self:netlink_socket create_socket_perms_no_ioctl;
allow hal_fingerprint_default dmabuf_system_heap_device:chr_file r_file_perms;
allow hal_fingerprint_default sysfs_fingerprint:dir r_dir_perms;
allow hal_fingerprint_default sysfs_fingerprint:file rw_file_perms;
allow hal_fingerprint_default fwk_stats_service:service_manager find;
get_prop(hal_fingerprint_default, fingerprint_ghbm_prop)
userdebug_or_eng(`
  get_prop(hal_fingerprint_default, vendor_fingerprint_fake_prop)
')
add_hwservice(hal_fingerprint_default, hal_fingerprint_ext_hwservice)

# allow fingerprint to access power hal
hal_client_domain(hal_fingerprint_default, hal_power);

# Allow access to the files of CDT information.
r_dir_file(hal_fingerprint_default, sysfs_chosen)

# Allow fingerprint to access calibration blk device.
allow hal_fingerprint_default mfg_data_block_device:blk_file { rw_file_perms };
allow hal_fingerprint_default block_device:dir search;
