1# gpuservice - server for gpu stats and other gpu related services
2typeattribute gpuservice coredomain;
3type gpuservice_exec, system_file_type, exec_type, file_type;
4
5init_daemon_domain(gpuservice)
6
7binder_call(gpuservice, adbd)
8binder_call(gpuservice, shell)
9binder_use(gpuservice)
10
11# Access the GPU.
12allow gpuservice gpu_device:chr_file rw_file_perms;
13
14# GPU service will need to load GPU driver, for example Vulkan driver in order
15# to get the capability of the driver.
16allow gpuservice same_process_hal_file:file { open read getattr execute map };
17allow gpuservice ion_device:chr_file r_file_perms;
18get_prop(gpuservice, hwservicemanager_prop)
19hwbinder_use(gpuservice)
20
21# Access /dev/graphics/fb0.
22allow gpuservice graphics_device:dir search;
23allow gpuservice graphics_device:chr_file rw_file_perms;
24
25# Needed for dumpsys pipes.
26allow gpuservice shell:fifo_file write;
27
28# Use socket supplied by adbd, for cmd gpu vkjson etc.
29allow gpuservice adbd:unix_stream_socket { read write getattr };
30
31# Needed for interactive shell
32allow gpuservice devpts:chr_file { read write getattr };
33
34# Needed for dumpstate to dumpsys gpu.
35allow gpuservice dumpstate:fd use;
36allow gpuservice dumpstate:fifo_file write;
37
38add_service(gpuservice, gpu_service)
39
40# Only uncomment below line when in development
41# userdebug_or_eng(`permissive gpuservice;')
42