vndbinder_use(rild)
allow rild self:qipcrtr_socket { create getattr read setopt write };

binder_call(rild, vendor_per_mgr)

#Allow access to netmgrd socket
allow rild netmgrd_socket:dir r_dir_perms;
unix_socket_connect(rild, netmgrd, netmgrd)

allow rild vendor_radio_data_file:dir rw_dir_perms;
allow rild vendor_radio_data_file:file create_file_perms;
allow rild vendor_per_mgr_service:service_manager find;

#Allow set property persist.vendo.radio.adb_log_on
get_prop(rild, sota_prop)
set_prop(rild, vendor_radio_prop)

hal_server_domain(rild, hal_secure_element)
add_hwservice(rild, hal_iwlan_hwservice)

#Fix no service problem
binder_call(rild, qtidataservices_app)

#Fix the avc denied for QCRILD QtiBusSocketTransport access b/131700006
allow rild qmuxd_socket:dir create_dir_perms;
allow rild qmuxd_socket:sock_file create_file_perms;

userdebug_or_eng(`
#Allow qcrild to logging log into QXDM.
allow rild diag_device:chr_file rw_file_perms;
')

add_hwservice(rild, hal_dataconnection_hwservice)
allow rild time_daemon:unix_stream_socket connectto;
set_prop(rild, vendor_xlat_prop)
