summaryrefslogtreecommitdiffstats
path: root/common/thermal-engine.te
blob: ed97a3fb90b3c0d68f46531c61e0bb7b9f930489 (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
# Thermal-engine daemon
type thermal-engine, domain;
type thermal-engine_exec, exec_type, vendor_file_type, file_type;

# Started by init
init_daemon_domain(thermal-engine)

# Allow to read and write cpufreq sysfs
allow thermal-engine sysfs_devices_system_cpu:file rw_file_perms;

# This is to access thermal query device and smem log device
allow thermal-engine { thermal_device smem_log_device }:chr_file rw_file_perms;

allow thermal-engine self:capability {
    dac_read_search
    dac_override
    fsetid
    sys_boot
};

allow thermal-engine self:socket create_socket_perms;
# ioctlcmd=c304
allowxperm thermal-engine self:socket ioctl msm_sock_ipc_ioctls;

# This is required to access thermal sockets
allow thermal-engine thermal_socket:dir w_dir_perms;
allow thermal-engine thermal_socket:sock_file create_file_perms;
allow thermal-engine socket_device:dir w_dir_perms;

# This is required for thermal sysfs access
r_dir_file(thermal-engine, sysfs_thermal)
allow thermal-engine { sysfs_thermal sysfs }:file w_file_perms;

# This is required for qmi access
qmux_socket(thermal-engine);
allow thermal-engine sysfs_mpdecision:file rw_file_perms;

r_dir_file(thermal-engine, sysfs_ssr);
r_dir_file(thermal-engine, sysfs)
r_dir_file(thermal-engine, sysfs_leds)

# This is required for wake alarm access
allow thermal-engine self:capability2 wake_alarm;

#This is to allow access to uio device
allow thermal-engine uio_device:chr_file rw_file_perms;

userdebug_or_eng(`
  diag_use(thermal-engine)
')

# To search, read and write kgsl sysfs
allow thermal-engine sysfs_kgsl:dir r_dir_perms;
allow thermal-engine sysfs_kgsl:file rw_file_perms;
allow thermal-engine sysfs_kgsl:lnk_file r_file_perms;

allow thermal-engine sysfs_data:file r_file_perms;

# netlink access
allow thermal-engine self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;

# This is required read and write battery power supply sysfs
allow thermal-engine sysfs_battery_supply:dir r_dir_perms;
allow thermal-engine sysfs_battery_supply:file rw_file_perms;
allow thermal-engine sysfs_battery_supply:lnk_file r_file_perms;

# This is required to read and write lcd-backlight sysfs
allow thermal-engine sysfs_graphics:dir r_dir_perms;
allow thermal-engine sysfs_graphics:file rw_file_perms;
allow thermal-engine sysfs_graphics:lnk_file r_file_perms;

r_dir_file(thermal-engine, sysfs_uio)
r_dir_file(thermal-engine, sysfs_uio_file)