# Allow the audio hal to access the EdgeTPU service and the
# Android shared memory allocated by the EdgeTPU service for
# on-device compilation.
allow hal_audio_default edgetpu_device:chr_file rw_file_perms;
allow hal_audio_default edgetpu_vendor_service:service_manager find;
binder_call(hal_audio_default, edgetpu_vendor_server)

# Allow edgetpu_app_service as well, due to the EdgeTpu metrics logging
# library has a dependency on edgetpu_app_service, see b/275016466.
allow hal_audio_default edgetpu_app_service:service_manager find;
binder_call(hal_audio_default, edgetpu_app_server)

# Allow audio HAL to read tflite Darwinn delegate properties
get_prop(hal_audio_default, vendor_tflite_delegate_prop)

# Allow audio HAL to read DarwiNN runtime properties
get_prop(hal_audio_default, vendor_edgetpu_runtime_prop)

# Allow audio HAL to read hetero runtime properties
get_prop(hal_audio_default, vendor_hetero_runtime_prop)

# Allow DMA Buf access.
allow hal_audio_default dmabuf_system_heap_device:chr_file r_file_perms;

# Allow audio HAL to connect to the stats service for logging EdgeTpu metrics.
allow hal_audio_default fwk_stats_service:service_manager find;

# Allow audio HAL to send EdgeTpu trace packets to Perfetto.
# Enable for prod devices, see: go/darwinn-perfetto-critical-events
perfetto_producer(hal_audio_default)
