blob: 656b03ac8a168f537010c0558491bf39662287e5 [file] [log] [blame]
Steven Moreland7baf7252018-05-25 16:23:37 -07001# applies all permissions to hal_omx NOT hal_omx_server
2# since OMX must always be in its own process.
3
Steven Moreland7baf7252018-05-25 16:23:37 -07004
Steven Moreland7baf7252018-05-25 16:23:37 -07005binder_call(hal_omx_server, binderservicedomain)
6binder_call(hal_omx_server, { appdomain -isolated_app })
7
8# Allow hal_omx_server access to composer sync fences
9allow hal_omx_server hal_graphics_composer:fd use;
10
Steven Moreland7baf7252018-05-25 16:23:37 -070011allow hal_omx_server ion_device:chr_file rw_file_perms;
12allow hal_omx_server hal_camera:fd use;
13
14crash_dump_fallback(hal_omx_server)
15
16# Recieve gralloc buffer FDs from bufferhubd. Note that hal_omx_server never
17# directly connects to bufferhubd via PDX. Instead, a VR app acts as a bridge
18# between those two: it talks to hal_omx_server via Binder and talks to bufferhubd
19# via PDX. Thus, there is no need to use pdx_client macro.
20allow hal_omx_server bufferhubd:fd use;
21
Steven Moreland9234e002018-06-06 09:30:18 -070022hal_attribute_hwservice(hal_omx, hal_omx_hwservice)
Chong Zhangbdbfff12018-09-20 12:07:44 -070023
24allow hal_omx_client hal_codec2_hwservice:hwservice_manager find;
25allow hal_omx_server hal_codec2_hwservice:hwservice_manager { add find };
Steven Moreland8fc79812018-05-30 16:43:17 -070026
Steven Moreland7baf7252018-05-25 16:23:37 -070027allow hal_omx_client hidl_token_hwservice:hwservice_manager find;
28
29binder_call(hal_omx_client, hal_omx_server)
Steven Moreland8fc79812018-05-30 16:43:17 -070030binder_call(hal_omx_server, hal_omx_client)
Steven Moreland7baf7252018-05-25 16:23:37 -070031
32###
33### neverallow rules
34###
35
36# hal_omx_server should never execute any executable without a
37# domain transition
38neverallow hal_omx_server { file_type fs_type }:file execute_no_trans;
39
40# The goal of the mediaserver split is to place media processing code into
41# restrictive sandboxes with limited responsibilities and thus limited
42# permissions. Example: Audioserver is only responsible for controlling audio
43# hardware and processing audio content. Cameraserver does the same for camera
44# hardware/content. Etc.
45#
46# Media processing code is inherently risky and thus should have limited
47# permissions and be isolated from the rest of the system and network.
48# Lengthier explanation here:
49# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
50neverallow hal_omx_server domain:{ tcp_socket udp_socket rawip_socket } *;