# OFLBasicAgent app

type ofl_app, domain;

userdebug_or_eng(`
  app_domain(ofl_app)
  net_domain(ofl_app)

  allow ofl_app app_api_service:service_manager find;
  allow ofl_app nfc_service:service_manager find;
  allow ofl_app radio_service:service_manager find;
  allow ofl_app surfaceflinger_service:service_manager find;

  # Access to directly update firmware on secure_element
  typeattribute secure_element_device mlstrustedobject;
  allow ofl_app secure_element_device:chr_file rw_file_perms;
')
