type traceur_app, domain;

allow traceur_app servicemanager:service_manager list;
allow traceur_app hwservicemanager:hwservice_manager list;

# Allow Traceur to enable traced if necessary.
set_prop(traceur_app, traced_enabled_prop)

set_prop(traceur_app, debug_prop)

allow traceur_app {
  service_manager_type
  -apex_service
  -dnsresolver_service
  -gatekeeper_service
  -incident_service
  -installd_service
  -iorapd_service
  -lpdump_service
  -netd_service
  -virtual_touchpad_service
  -vold_service
  -vr_hwc_service
}:service_manager find;

# Allow traceur_app to use atrace HAL
hal_client_domain(traceur_app, hal_atrace)

dontaudit traceur_app service_manager_type:service_manager find;
dontaudit traceur_app hwservice_manager_type:hwservice_manager find;
dontaudit traceur_app domain:binder call;
