# ==============================================
# Policy File of /vendor/bin/rild Executable File

# ==============================================
# Common SEPolicy Rule
# ==============================================
# Access to wake locks
wakelock_use(rild)

#Date : W17.21
#Purpose: Grant permission to access binder dev node
vndbinder_use(rild)

# Trigger module auto-load.
allow rild kernel:system module_request;

# Capabilities assigned for rild
allow rild self:capability { setuid net_admin net_raw };

# Control cgroups
allow rild cgroup:dir create_dir_perms;

# Property service
# allow set RIL related properties (radio./net./system./etc)
set_prop(rild, vendor_mtk_ril_active_md_prop)

# allow set muxreport control properties
set_prop(rild, vendor_mtk_ril_cdma_report_prop)
set_prop(rild, vendor_mtk_ril_mux_report_case_prop)
set_prop(rild, vendor_mtk_ctl_muxreport-daemon_prop)

# Allow access permission to efs files
allow rild efs_file:dir create_dir_perms;
allow rild efs_file:file create_file_perms;
allow rild bluetooth_efs_file:file r_file_perms;
allow rild bluetooth_efs_file:dir r_dir_perms;

# Allow access permission to dir/files
# (radio data/system data/proc/etc)
allow rild sdcardfs:dir r_dir_perms;
allow rild proc_net:file w_file_perms;

# Allow rild to create and use netlink sockets.
# Set and get routes directly via netlink.
allow rild self:netlink_route_socket nlmsg_write;

# Allow read/write to devices/files
allow rild mtk_radio_device:dir search;
allow rild radio_device:chr_file rw_file_perms;
allow rild radio_device:blk_file r_file_perms;
allow rild mtd_device:dir search;

# Allow read/write to tty devices
allow rild tty_device:chr_file rw_file_perms;
allow rild eemcs_device:chr_file rw_file_perms;

allow rild devmap_device:chr_file r_file_perms;
allow rild devpts:chr_file rw_file_perms;
allow rild ccci_device:chr_file rw_file_perms;
allow rild misc_device:chr_file rw_file_perms;
allow rild proc_lk_env:file rw_file_perms;
allow rild sysfs_vcorefs_pwrctrl:file w_file_perms;
allow rild para_block_device:blk_file rw_file_perms;

# Allow dir search, fd uses
allow rild block_device:dir search;
allow rild platform_app:fd use;
allow rild radio:fd use;

# For MAL MFI
allow rild mal_mfi_socket:sock_file w_file_perms;

# For ccci sysfs node
allow rild sysfs_ccci:dir search;
allow rild sysfs_ccci:file r_file_perms;

#Dat: 2017/03/27
#Purpose: allow set telephony Sensitive property
set_prop(rild, vendor_mtk_telephony_sensitive_prop)

set_prop(rild,vendor_mtk_md_prop)

# For AGPSD
allow rild mtk_agpsd:unix_stream_socket connectto;

#Date: 2017/12/6
#Purpose: allow set the RS times for /proc/sys/net/ipv6/conf/ccmniX/router_solicitations
allow rild vendor_shell_exec:file x_file_perms;
allow rild vendor_toolbox_exec:file x_file_perms;

# Date : WK18.16
# Operation: P migration
# Purpose: Allow rild to get vendor_mtk_tel_switch_prop
get_prop(rild, vendor_mtk_tel_switch_prop)

#Date: W1817
#Purpose: allow rild access property of vendor_mtk_radio_prop
set_prop(rild, vendor_mtk_radio_prop)

#Date : W18.21
#Purpose: allow rild access to vendor.ril.ipo system property
set_prop(rild, vendor_mtk_ril_ipo_prop)

# Date : WK18.26
# Operation: P migration
# Purpose: Allow carrier express HIDL to set vendor property
set_prop(rild, vendor_mtk_cxp_vendor_prop)
allow rild mnt_vendor_file:dir search;
allow rild mnt_vendor_file:file create_file_perms;
allow rild nvdata_file:dir create_dir_perms;
allow rild nvdata_file:file create_file_perms;

#Date : W18.29
#Purpose: allow rild access binder to mtk_hal_secure_element
allow rild mtk_hal_secure_element:binder call;

# Date : WK18.31
# Operation: P migration
# Purpose: Allow supplementary service HIDL to set vendor property
set_prop(rild, vendor_mtk_ss_vendor_prop)

# Date : 2018/2/27
# Purpose : for NVRAM recovery mechanism
set_prop(rild, powerctl_prop)

# Date: 2019/06/14
# Operation : Migration
allow rild proc_cmdline:file r_file_perms;

# Date: 2019/07/18
# Operation: AP wifi path
# Purpose: Allow packet can be filtered by RILD process
allow rild self:netlink_netfilter_socket { create_socket_perms_no_ioctl };

# Date : WK19.43
# Purpose: Allow wfc module from rild read system property from wfc module
get_prop(rild, vendor_mtk_wfc_serv_prop)

# Date: 2019/11/15
# Operation: RILD init flow
# Purpose: To handle illegal rild started
set_prop(rild, vendor_mtk_gsm0710muxd_prop)

# Date : 2019/10/29
# Operation: imstestmode
# Purpose: Allow HIDL to set vendor property
set_prop(rild, vendor_mtk_imstestmode_prop)

# Date : 2020/06/11
# Operation: R migration
# Purpose: Allow rild to get system_boot_reason_prop
get_prop(rild, system_boot_reason_prop)

# rild Bringup Policy
allow rild mtkrild:unix_stream_socket connectto;
set_prop(rild, radio_prop)

# Allow the socket read/write of netd for rild
allow rild netd_socket:sock_file { write read };

#Date : W17.20
#Purpose: allow access to audio hal
binder_call(rild, mtk_hal_audio)
hal_client_domain(rild, hal_audio)

# Date : W19.16
# Operation: Q migration
# Purpose: Allow rild access to send SUPL INIT to mnld
allow rild mnld:unix_dgram_socket sendto;

# Date : W19.35
# Operation: Q migration
# Purpose: Fix rilproxy SeLinux warning of pre-defined socket
allow rild gsmrild_socket:sock_file w_file_perms;

# Date: 2021/02/03
# Operation: for Gen98 RILD dev
# Allow read/write to devices/files
allow rild gsm0710muxd_device:chr_file rw_file_perms;

# Date : 2021/08/27
# Purpose: Allow rild to access ccci wifi proxy
allow rild ccci_wifi_proxy_device:chr_file rw_file_perms;

# Date: 2021/09/26
# Purpose: Add permission for vilte
allow rild ccci_vts_device:chr_file rw_file_perms_no_map;
