# HwBinder IPC from client to server
binder_call(hal_sensors_client, hal_sensors_server)

add_hwservice(hal_sensors_server, hal_sensors_hwservice)
allow hal_sensors_client hal_sensors_hwservice:hwservice_manager find;

# Allow sensor hals to access ashmem memory allocated by apps
allow hal_sensors { appdomain -isolated_app }:fd use;

# Allow sensor hals to access ashmem memory allocated by android.hidl.allocator
# fd is passed in from framework sensorservice HAL.
allow hal_sensors hal_allocator:fd use;

# allow to run with real-time scheduling policy
allow hal_sensors self:global_capability_class_set sys_nice;
