type hal_fingerprint_default, domain;
hal_server_domain(hal_fingerprint_default, hal_fingerprint)

type hal_fingerprint_default_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hal_fingerprint_default)

# android.frameworks.sensorservice through libsensorndkbridge
allow hal_fingerprint_default fwk_sensor_service:service_manager find;

set_prop(hal_fingerprint_default, virtual_fingerprint_hal_prop)

userdebug_or_eng(`
  # Allow fingerprint hal to read app-created pipes (to respond shell commands from test apps)
  allow hal_fingerprint_default appdomain:fifo_file read;
')
