| # 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; |
| |
| # 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; |