type obdm_app, domain, coredomain;

app_domain(obdm_app)
net_domain(obdm_app)

allow obdm_app app_api_service:service_manager find;
allow obdm_app radio_service:service_manager find;
allow obdm_app surfaceflinger_service:service_manager find;

userdebug_or_eng(`
  allow obdm_app proc_stat:file r_file_perms;

  # talk to /dev/diag
  allow obdm_app diag_device:chr_file rw_file_perms;

  allow obdm_app self:socket create_socket_perms;
  allowxperm obdm_app self:socket ioctl { 0x0000c302 0x0000c304 };

  allow obdm_app sysfs:dir r_dir_perms;
  r_dir_file(obdm_app, sysfs_msm_subsys)
')
