blob: 0faf0c585164b30bcbf66d21815a811ac0d0398a [file] [log] [blame]
Vadim Caend64cf752022-11-04 12:51:18 +00001# virtual_camera - virtual camera daemon
2
Priyanka Advani (xWF)639c4412024-08-05 17:09:50 +00003type virtual_camera, domain, coredomain;
4type virtual_camera_exec, system_file_type, exec_type, file_type;
Vadim Caend64cf752022-11-04 12:51:18 +00005
Vadim Caenf6e88ec2023-09-29 16:15:23 +02006init_daemon_domain(virtual_camera)
Vadim Caend64cf752022-11-04 12:51:18 +00007
Vadim Caenf6e88ec2023-09-29 16:15:23 +02008# Since virtual_camera is not a real HAL we don't set the
9# hal_server_domain(virtual_camera, hal_camera) macro but only the rules that
10# we actually need from halserverdomain and hal_camera_server:
11binder_use(virtual_camera)
Ján Sebechlebský5d6b66c2023-11-20 09:39:22 +000012binder_call(virtual_camera, cameraserver)
13binder_call(virtual_camera, system_server)
Vadim Caend64cf752022-11-04 12:51:18 +000014
Jan Sebechlebsky0fd6d1b2023-12-27 17:26:52 +010015# Allow virtual_camera to communicate with
16# mediaserver (required for using Surface originating
17# from virtual camera in mediaserver).
18binder_call(virtual_camera, mediaserver)
19
20# Required for the codecs to be able to decode
21# video into surface provided by virtual camera.
22hal_client_domain(virtual_camera, hal_codec2)
23hal_client_domain(virtual_camera, hal_omx)
Jan Sebechlebsky6e1795c2023-12-06 09:31:17 +010024
25# Allow virtualCamera to call apps via binder.
26binder_call(virtual_camera, appdomain)
27
Vadim Caenf6e88ec2023-09-29 16:15:23 +020028# Allow virtual_camera to use fd from apps
29allow virtual_camera { appdomain -isolated_app }:fd use;
Vadim Caend64cf752022-11-04 12:51:18 +000030
Vadim Caen68dc59d2024-03-15 17:12:37 +010031# Allow virtual_camera to use fd from surface flinger
32allow virtual_camera surfaceflinger:fd use;
Vadim Caen4eb4ac12024-07-23 16:39:54 +020033allow virtual_camera surfaceflinger:binder call;
Vadim Caen68dc59d2024-03-15 17:12:37 +010034
Vadim Caenf6e88ec2023-09-29 16:15:23 +020035# Only allow virtual_camera to add a virtual_camera_service and no one else.
36add_service(virtual_camera, virtual_camera_service);
37
38# Allow virtual_camera to map graphic buffers
39hal_client_domain(virtual_camera, hal_graphics_allocator)
Jan Sebechlebsky267b6a92023-11-17 10:08:16 +010040
41# Allow virtual_camera to use GPU
42allow virtual_camera gpu_device:chr_file rw_file_perms;
43allow virtual_camera gpu_device:dir r_dir_perms;
Jan Sebechlebsky9999b0a2024-06-13 14:23:22 +000044allow virtual_camera sysfs_gpu:file r_file_perms;
Jan Sebechlebskyde644172023-11-30 10:57:16 +010045
Jan Sebechlebskyfd7e2852024-02-26 11:55:16 +010046# Allow virtual camera to use graphics composer fd-s (fences).
47allow virtual_camera hal_graphics_composer:fd use;
48
Jan Sebechlebskyde644172023-11-30 10:57:16 +010049# For collecting bugreports.
50allow virtual_camera dumpstate:fd use;
51allow virtual_camera dumpstate:fifo_file write;
Jan Sebechlebsky0959bef2023-12-05 14:17:07 +010052
53# Needed for permission checks.
54allow virtual_camera permission_service:service_manager find;
Jan Sebechlebsky7f271ce2024-04-15 08:25:19 +000055
56# Allow 'adb shell cmd' to configure test instances of camera.
57allow virtual_camera adbd:fd use;
58allow virtual_camera adbd:unix_stream_socket { getattr read write };
59allow virtual_camera shell:fifo_file { getattr read write };