summaryrefslogtreecommitdiffstats
path: root/common/mediaserver.te
blob: 07d8494ea3aa34e229634112ed7cb263e5854f2d (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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# Copyright (c) 2015-2016 Dolby Laboratories, Inc. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#     * Redistributions of source code must retain the above copyright
#       notice, this list of conditions and the following disclaimer.
#     * Redistributions in binary form must reproduce the above
#       copyright notice, this list of conditions and the following
#       disclaimer in the documentation and/or other materials provided
#       with the distribution.
#
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

# allow mediaserver to communicate with cnd
unix_socket_connect(mediaserver, cnd, cnd)

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;

# allow poweroffhandler to binder mediaserver
binder_call(mediaserver, poweroffhandler);

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

# 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 communicate with bootanim
binder_call(mediaserver, bootanim);

allow mediaserver surfaceflinger:unix_stream_socket rw_socket_perms;

# DOLBY_START
set_prop(mediaserver, dolby_prop)
# DOLBY_END