platform_system_sepolicy/private/virtual_camera.te
Vadim Caen 68dc59dee5 Allow virtual_camera to use fd from surfaceflinger
Test: atest --rerun-until-failure 100 android.hardware.camera2.cts.CaptureRequestTest#testEffectModes
Fixes: 329837920
Change-Id: I2de4e119383e4c8d4183957bfa6e1e363cdbbe4f
2024-03-15 17:17:21 +01:00

52 lines
1.8 KiB
Text

# virtual_camera - virtual camera daemon
type virtual_camera, domain, coredomain;
type virtual_camera_exec, system_file_type, exec_type, file_type;
init_daemon_domain(virtual_camera)
# Since virtual_camera is not a real HAL we don't set the
# hal_server_domain(virtual_camera, hal_camera) macro but only the rules that
# we actually need from halserverdomain and hal_camera_server:
binder_use(virtual_camera)
binder_call(virtual_camera, cameraserver)
binder_call(virtual_camera, system_server)
# Allow virtual_camera to communicate with
# mediaserver (required for using Surface originating
# from virtual camera in mediaserver).
binder_call(virtual_camera, mediaserver)
# Required for the codecs to be able to decode
# video into surface provided by virtual camera.
hal_client_domain(virtual_camera, hal_codec2)
hal_client_domain(virtual_camera, hal_omx)
# Allow virtualCamera to call apps via binder.
binder_call(virtual_camera, appdomain)
# Allow virtual_camera to use fd from apps
allow virtual_camera { appdomain -isolated_app }:fd use;
# Allow virtual_camera to use fd from surface flinger
allow virtual_camera surfaceflinger:fd use;
# Only allow virtual_camera to add a virtual_camera_service and no one else.
add_service(virtual_camera, virtual_camera_service);
# Allow virtual_camera to map graphic buffers
hal_client_domain(virtual_camera, hal_graphics_allocator)
# Allow virtual_camera to use GPU
allow virtual_camera gpu_device:chr_file rw_file_perms;
allow virtual_camera gpu_device:dir r_dir_perms;
# Allow virtual camera to use graphics composer fd-s (fences).
allow virtual_camera hal_graphics_composer:fd use;
# For collecting bugreports.
allow virtual_camera dumpstate:fd use;
allow virtual_camera dumpstate:fifo_file write;
# Needed for permission checks.
allow virtual_camera permission_service:service_manager find;