# vehicle subsystem
type hal_vehicle_default, domain;
hal_server_domain(hal_vehicle_default, hal_vehicle)

# may be started by init
type hal_vehicle_default_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hal_vehicle_default)

# communication with CAN bus HAL
hal_client_domain(hal_vehicle_default, hal_can_bus)

# communicate with servicemanager
binder_call(hal_vehicle_server, servicemanager)

# communicate with statsd
hwbinder_use(hal_vehicle_default)
allow hal_vehicle_default fwk_stats_hwservice:hwservice_manager find;
binder_call(hal_vehicle_default, stats_service_server)
