# evs_mock mock hardware driver service
type hal_evs_default, domain;
hal_server_domain(hal_evs_default, hal_evs)

# allow init to launch processes in this context
type hal_evs_default_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(hal_evs_default)

allow hal_evs_default hal_graphics_allocator_server:fd use;

# allow to use surface flinger
allow hal_evs_default automotive_display_service_server:fd use;

# allow to use automotive display service
allow hal_evs_default fwk_automotive_display_hwservice:hwservice_manager find;
