get_prop(radio, ims_prop)
typeattribute radio system_writes_vendor_properties_violators;

allow radio qmuxd_socket:dir search;
allow radio qmuxd_socket:sock_file write;

allow radio vendor_file:lnk_file r_file_perms;
allow radio vendor_framework_file:file r_file_perms;
allow radio vendor_framework_file:dir search;

hwbinder_use(radio)
allow radio vnd_ims_radio_hwservice:hwservice_manager find;
allow radio vnd_qcrilhook_hwservice:hwservice_manager find;
allow radio hal_imsrtp_hwservice:hwservice_manager find;

allow radio {
  mediaextractor_service
  mediacodec_service
}:service_manager find;

r_dir_file(radio, sysfs_msm_subsys)

# IMS needs permission to use avtimer
allow radio avtimer_device:chr_file r_file_perms;

binder_call(radio, hal_imsrtp)

userdebug_or_eng(`
  allow radio diag_device:chr_file rw_file_perms;
  r_dir_file(radio, sysfs_diag)
  allow radio sysfs_timestamp_switch:file r_file_perms;
')
dontaudit radio diag_device:chr_file rw_file_perms;
dontaudit radio sysfs_diag:dir search;

# read /proc/cmdline
allow radio proc_cmdline:file r_file_perms;

get_prop(radio, vendor_radio_prop)