# HwBinder IPC from client to server, and callbacks
binder_call(hal_dumpstate_client, hal_dumpstate_server)
binder_call(hal_dumpstate_server, hal_dumpstate_client)

set_prop(hal_dumpstate_server, hal_dumpstate_config_prop)

hal_attribute_hwservice(hal_dumpstate, hal_dumpstate_hwservice)
hal_attribute_service(hal_dumpstate, hal_dumpstate_service)

binder_call(hal_dumpstate_server, servicemanager)

binder_use(hal_dumpstate_server)

# write bug reports in /data/data/com.android.shell/files/bugreports/bugreport
allow hal_dumpstate shell_data_file:file write;
# allow reading /proc/interrupts for all hal impls
allow hal_dumpstate proc_interrupts:file r_file_perms;

# Log fsck results
r_dir_file(hal_dumpstate, fscklogs)
