summaryrefslogtreecommitdiffstats
path: root/common/mediaserver.te
blob: 10d43afd395d96fb14f53e24c79d79cf470886a8 (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
72
73
74
75
76
77
78
# allow mediaserver to communicate with cnd
unix_socket_connect(mediaserver, cnd, cnd)

allow mediaserver camera_device:chr_file rw_file_perms;
unix_socket_send(mediaserver, camera, mm-qcamerad)

allow mediaserver tee_device:chr_file rw_file_perms;
allow mediaserver qdsp_device:chr_file r_file_perms;

allow mediaserver self:socket create_socket_perms;

binder_call(mediaserver, rild)

qmux_socket(mediaserver)
allow mediaserver camera_data_file:sock_file w_file_perms;

userdebug_or_eng(`
  allow mediaserver camera_data_file:dir rw_dir_perms;
  allow mediaserver camera_data_file:file create_file_perms;
  # Access to audio
  allow mediaserver debugfs:file rw_file_perms;
')

r_dir_file(mediaserver, sysfs_esoc)
allow mediaserver system_app_data_file:file rw_file_perms;

# allow mediaserver to write DTS files
allow mediaserver dts_data_file:dir rw_dir_perms;
allow mediaserver dts_data_file:file create_file_perms;

# access to perflock
allow mediaserver mpctl_socket:dir r_dir_perms;
unix_socket_send(mediaserver, mpctl, mpdecision)
unix_socket_connect(mediaserver, mpctl, mpdecision)
unix_socket_connect(mediaserver, thermal, thermal-engine)

# access to perflock
allow mediaserver mpctl_socket:dir r_dir_perms;
unix_socket_send(mediaserver, mpctl, perfd)
unix_socket_connect(mediaserver, mpctl, perfd)

# for thermal sock files
unix_socket_connect(mediaserver, thermal, thermal-engine)

#This is required for thermal sysfs access
r_dir_file(mediaserver, sysfs_thermal);

#allow mediaserver to communicate with timedaemon
allow mediaserver time_daemon:unix_stream_socket connectto;

# Allow mediaserver to create socket files for audio arbitration
allow mediaserver audio_data_file:sock_file { create setattr unlink };
allow mediaserver audio_data_file:dir remove_name;

# Allow mediaserver to create audio pp files
allow mediaserver audio_pp_data_file:dir rw_dir_perms;
allow mediaserver audio_pp_data_file:file create_file_perms;

#Allow mediaserver to set camera  properties
allow mediaserver camera_prop:property_service set;

#allow mediaserver to access wfdservice
binder_call(mediaserver, wfdservice)

#allow mediaserver to access adsprpcd
r_dir_file(mediaserver, adsprpcd_file);

#Allow mediaserver to connect to unix sockets for staproxy service
allow mediaserver system_app:unix_stream_socket { connectto read write setopt };

#Allow mediaserver to access service manager STAProxyService
#Allow mediaserver to access service manager wfdservice
allow mediaserver { STAProxyService wfdservice_service }:service_manager find;

# Allow mediaserver to search and get the widevine, playready firmwares
allow mediaserver firmware_file:dir search;
allow mediaserver firmware_file:file { read getattr open };
allow mediaserver surfaceflinger:unix_stream_socket rw_socket_perms;