mediacodec: fix sepolicy for video playback/recording

07-18 08:46:26.420   925   925 I CodecLooper: type=1400 audit(0.0:404): avc:  denied  { use } for  path="/dev/ashmemf7003569-92c8-48c6-bfdb-b7331af5f4e9" dev="tmpfs" ino=1121 scontext=u:r:mediacodec_google:s0 tcontext=u:r:mediaserver:s0 tclass=fd permissive=1
07-18 08:46:26.468   925   925 I HwBinder:925_3: type=1400 audit(0.0:405): avc:  denied  { use } for  path="/dmabuf:system-uncached" dev="dmabuf" ino=734 scontext=u:r:mediacodec_google:s0 tcontext=u:r:hal_graphics_allocator_default:s0 tclass=fd permissive=1
07-18 08:46:26.664   925   925 I HwBinder:925_4: type=1400 audit(0.0:406): avc:  denied  { use } for  path="anon_inode:sync_file" dev="anon_inodefs" ino=52 scontext=u:r:mediacodec_google:s0 tcontext=u:r:untrusted_app_27:s0:c83,c256,c512,c768 tclass=fd permissive=1
07-18 08:46:26.668   925   925 I HwBinder:925_5: type=1400 audit(0.0:407): avc:  denied  { use } for  path="anon_inode:sync_file" dev="anon_inodefs" ino=52 scontext=u:r:mediacodec_google:s0 tcontext=u:r:surfaceflinger:s0 tclass=fd permissive=1
07-18 08:46:26.696   925   925 I HwBinder:925_5: type=1400 audit(0.0:408): avc:  denied  { use } for  path="anon_inode:sync_file" dev="anon_inodefs" ino=52 scontext=u:r:mediacodec_google:s0 tcontext=u:r:hal_graphics_composer_default:s0 tclass=fd permissive=1
07-18 08:46:29.392   925   925 I HwBinder:925_6: type=1400 audit(0.0:409): avc:  denied  { use } for  path="anon_inode:sync_file" dev="anon_inodefs" ino=52 scontext=u:r:mediacodec_google:s0 tcontext=u:r:hal_graphics_composer_default:s0 tclass=fd permissive=1

Test: video playback, screen recording
Bug: 353638738
Change-Id: I071268d39cedf10b8f7c0ca0c9cb2bd33a367d09
This commit is contained in:
Ernie Hsu 2024-07-18 10:41:41 +00:00
parent 3b4a36a573
commit bbe999c372

View file

@ -3,3 +3,18 @@ type mediacodec_google_exec, exec_type, vendor_file_type, file_type;
init_daemon_domain(mediacodec_google) init_daemon_domain(mediacodec_google)
hal_server_domain(mediacodec_google, hal_codec2)
hal_client_domain(mediacodec_google, hal_graphics_allocator)
allow mediacodec_google dmabuf_system_heap_device:chr_file r_file_perms;
# mediacodec_google should never execute any executable without a domain transition
neverallow mediacodec_google { file_type fs_type }:file execute_no_trans;
# Media processing code is inherently risky and thus should have limited
# permissions and be isolated from the rest of the system and network.
# Lengthier explanation here:
# https://android-developers.googleblog.com/2016/05/hardening-media-stack.html
neverallow mediacodec_google domain:{ udp_socket rawip_socket } *;
neverallow mediacodec_google { domain userdebug_or_eng(`-su') }:tcp_socket *;