diff --git a/private/app.te b/private/app.te
index e0fb6f14d86696aaad672c31e565f1f218a1f156..b009d986944a0e3ea1f127921174937a6cd86eaa 100644
--- a/private/app.te
+++ b/private/app.te
@@ -158,6 +158,11 @@ binder_call(appdomain, appdomain)
# Perform binder IPC to ephemeral apps.
binder_call(appdomain, ephemeral_app)
+# hidl access for mediacodec
+# TODO(b/34454312): only allow getting and talking to mediacodec service
+hwbinder_use(appdomain)
+hwallocator_use(appdomain)
+
# Already connected, unnamed sockets being passed over some other IPC
# hence no sock_file or connectto permission. This appears to be how
# Chrome works, may need to be updated as more apps using isolated services
diff --git a/private/system_server.te b/private/system_server.te
index 30fe3e2ba039be200a3c3e0037ed5fe407336cf9..cba1ab3d9fdbd6500c377605c841658e10c4e08e 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -179,6 +179,7 @@ binder_service(system_server)
# Perform HwBinder IPC.
hwbinder_use(system_server)
+hwallocator_use(system_server)
binder_call(system_server, hal_bluetooth)
binder_call(system_server, hal_boot)
binder_call(system_server, hal_contexthub)
diff --git a/public/mediacodec.te b/public/mediacodec.te
index 9f07d8564ac4df721d855ff17954f710ca83f263..6b4d677181d06f033860e1e990822302d9cfad1e 100644
--- a/public/mediacodec.te
+++ b/public/mediacodec.te
@@ -18,6 +18,11 @@ allow mediacodec video_device:dir search;
allow mediacodec ion_device:chr_file rw_file_perms;
allow mediacodec hal_graphics_allocator:fd use;
+# hidl access
+hwbinder_use(mediacodec)
+hwallocator_use(mediacodec)
+allow mediacodec system_file:dir { open read };
+
###
### neverallow rules
###
diff --git a/public/mediaserver.te b/public/mediaserver.te
index 16b8013288aa19530e33547c616156ca260677cf..fa472886a77b0decf418e2ee04529e36fc2a20b3 100644
--- a/public/mediaserver.te
+++ b/public/mediaserver.te
@@ -132,6 +132,10 @@ allow mediaserver hal_graphics_allocator:fd use;
allow mediaserver system_server:fd use;
+# hidl access
+hwbinder_use(mediaserver)
+hwallocator_use(mediaserver)
+
###
### neverallow rules
###