summaryrefslogtreecommitdiffstats
path: root/common/ims.te
blob: 5260c4bac2727cc77edc71f0f52676d4e0514519 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#integrated sensor process
type ims, domain;
type ims_exec, exec_type, vendor_file_type, file_type;

# Started by init
init_daemon_domain(ims)
net_domain(ims)

# Talk to qmuxd
qmux_socket(ims)

allow ims self:capability net_bind_service;

# Use generic netlink socket
allow ims self:{
    netlink_socket
    socket
    netlink_generic_socket
} create_socket_perms_no_ioctl;

# To run NDC command
allow ims {
    vendor_shell_exec
    system_file
    # IMS route installation
    wcnss_service_exec
    # for WPA supplicant comment to remove compilation issue
    #wpa_exec
}:file rx_file_perms;

# Talk to netd via netd_socket
unix_socket_connect(ims, netd, netd)

# Talk to qumuxd via ims_socket
unix_socket_connect(ims, ims, qmuxd)

set_prop(ims, qcom_ims_prop)
set_prop(ims, ctl_vendor_imsrcsservice_prop)

# permissions needed for IMS to connect and interact with WPA supplicant
# comment to remove compilation
#unix_socket_send(ims, wpa, wpa)
allow ims wpa_socket:dir w_dir_perms;
allow ims wpa_socket:sock_file { create unlink setattr };
allow ims wifi_data_file:dir r_dir_perms;

# permissions for communication with CNE in LBO use case
unix_socket_connect(ims, cnd, cnd)

#Allow access to netmgrd socket
netmgr_socket(ims);

# Inherit and use open files from radio.
allow ims radio:fd use;

#diag
userdebug_or_eng(`
    diag_use(ims)
')
allow ims self:{ socket udp_socket } ioctl;
# ioctlcmd=c302
allowxperm ims self:socket ioctl msm_sock_ipc_ioctls;
# ioctlcmd=89fd
allowxperm ims self:udp_socket ioctl priv_sock_ioctls;
allow ims sysfs:file r_file_perms;
allow ims sysfs_data:file r_file_perms;
hwbinder_use(ims)
get_prop(ims, hwservicemanager_prop)
get_prop(ims, qcom_ims_prop)
allow ims hal_cne_hwservice:hwservice_manager find;
binder_call(ims, cnd)