summaryrefslogtreecommitdiffstats
path: root/selinux/qmuxd.te
blob: 2f3bd597c860301b660f546a66ae0c3ffabc08b9 (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
type qmuxd, domain;
type qmuxd_exec, exec_type, file_type;
net_domain(qmuxd)
init_daemon_domain(qmuxd)

userdebug_or_eng(`
  domain_auto_trans(shell, qmuxd_exec, qmuxd)
  domain_auto_trans(adbd, qmuxd_exec, qmuxd)
')

#Allow qmuxd to operate on various qmux device sockets
#allow qmuxd qmux_radio_socket:dir { write add_name remove_name search };
#allow qmuxd qmux_radio_socket:sock_file { create setattr getattr write unlink };
#allow qmuxd qmux_audio_socket:dir { write add_name remove_name search };
#allow qmuxd qmux_audio_socket:sock_file { create setattr getattr write unlink };
#allow qmuxd qmux_gps_socket:dir { write add_name remove_name search };
#allow qmuxd qmux_gps_socket:sock_file { create setattr getattr write unlink };
#allow qmuxd qmux_bluetooth_socket:dir { write add_name remove_name search };
#allow qmuxd qmux_bluetooth_socket:sock_file { create setattr getattr write unlink };

qmux_socket(qmuxd);

#Allow logging
allow qmuxd diag_device:chr_file { rw_file_perms };

#Allow operation in platform specific transports
allow qmuxd smd_device:chr_file { rw_file_perms };
allow qmuxd hsic_device:chr_file { rw_file_perms };

#Allow qmuxd to operate in platform specific transports
allow qmuxd sysfs_smd_open_timeout:file w_file_perms;
allow qmuxd sysfs_wake_lock:file { append open };

#Allow qmuxd to write in hsic specific transport
allow qmuxd sysfs:file w_file_perms;
allow qmuxd radio_device:file w_file_perms;

allow qmuxd self:capability { setuid setgid setpcap dac_override };

#Allow qmuxd to have the CAP_BLOCK_SUSPEND capability
allow qmuxd qmuxd:capability2 { block_suspend };

allow qmuxd sysfs_esoc:dir r_dir_perms;
allow qmuxd sysfs_hsic_modem_wait:file w_file_perms;
allow qmuxd sysfs_esoc:lnk_file read;

r_dir_file(qmuxd, sysfs_ssr);
allow qmuxd mhi_device:chr_file rw_file_perms;

allow qmuxd qmuxd:process { execmem };
allow qmuxd radio_device:chr_file { read write open };
allow qmuxd log_device:chr_file { open write };