type hal_tui_comm, domain;
type hal_tui_comm_exec, file_type, vendor_file_type, exec_type;

init_daemon_domain(hal_tui_comm);

get_prop(hal_tui_comm, hwservicemanager_prop)

add_hwservice(hal_tui_comm, hal_tui_comm_hwservice)
hwbinder_use(hal_tui_comm)

binder_call(hal_tui_comm, secure_ui_service_app)
binder_call(hal_tui_comm, hal_confirmationui_default)
binder_call(hal_tui_comm, tee)

allow hal_tui_comm hal_graphics_allocator_default:fd use;
