type traceur_app, domain;

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

set_prop(traceur_app, debug_prop)

allow traceur_app {
  service_manager_type
  -apex_service
  -gatekeeper_service
  -incident_service
  -installd_service
  -ipmemorystore_service
  -iorapd_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;
