diff --git a/private/bufferhubd.te b/private/bufferhubd.te
index 012eb20270cb536f73ae5c02e199a76706106312..31328ac73229498d1222f43ba4d805357af865d2 100644
--- a/private/bufferhubd.te
+++ b/private/bufferhubd.te
@@ -1,3 +1,7 @@
typeattribute bufferhubd coredomain;
init_daemon_domain(bufferhubd)
+
+# Permission for create binder service "bufferhubd"
+binder_use(bufferhubd);
+add_service(bufferhubd, buffer_hub_service);
diff --git a/private/compat/26.0/26.0.ignore.cil b/private/compat/26.0/26.0.ignore.cil
index b70b2aba7b71c31f631a83c8db72e17757ce5373..b64e10e911c6065a96311239bf5ad0578e9a350e 100644
--- a/private/compat/26.0/26.0.ignore.cil
+++ b/private/compat/26.0/26.0.ignore.cil
@@ -18,6 +18,8 @@
bpfloader
bpfloader_exec
broadcastradio_service
+ ;; TODO(b/116344577): remove after the issue is resolved
+ buffer_hub_service
cgroup_bpf
color_display_service
crossprofileapps_service
diff --git a/private/compat/27.0/27.0.ignore.cil b/private/compat/27.0/27.0.ignore.cil
index 1e38d2d528385d86eeb679e909b30f3747881875..494e63456912fef633109cc148b6ab038384b57e 100644
--- a/private/compat/27.0/27.0.ignore.cil
+++ b/private/compat/27.0/27.0.ignore.cil
@@ -16,6 +16,8 @@
bluetooth_a2dp_offload_prop
bpfloader
bpfloader_exec
+ ;; TODO(b/116344577): remove after the issue is resolved
+ buffer_hub_service
cgroup_bpf
color_display_service
crossprofileapps_service
diff --git a/private/compat/28.0/28.0.ignore.cil b/private/compat/28.0/28.0.ignore.cil
index 9d9fc2058b5bd055d1bf9a6455bcd047094cb2e6..cd7b7c8927136444f74699699882ca181ccbcac4 100644
--- a/private/compat/28.0/28.0.ignore.cil
+++ b/private/compat/28.0/28.0.ignore.cil
@@ -7,6 +7,8 @@
adb_service
app_binding_service
biometric_service
+ ;; TODO(b/116344577): remove after the issue is resolved
+ buffer_hub_service
fastbootd
color_display_service
hal_health_storage_hwservice
diff --git a/private/service.te b/private/service.te
index 3fec8825a777cbcd7c68feb024999a109ffeab08..660bc1ed7ccee8e296edbbb07365e374baf37943 100644
--- a/private/service.te
+++ b/private/service.te
@@ -1,2 +1,3 @@
+type buffer_hub_service, service_manager_type;
type stats_service, service_manager_type;
type statscompanion_service, system_server_service, service_manager_type;
diff --git a/private/service_contexts b/private/service_contexts
index ebd8a362eef3234da042f29ff210129f41055711..e04227b550fdd751fed097f64c7aa009650fbea7 100644
--- a/private/service_contexts
+++ b/private/service_contexts
@@ -22,6 +22,7 @@ biometric u:object_r:biometric_service:s0
bluetooth_manager u:object_r:bluetooth_manager_service:s0
bluetooth u:object_r:bluetooth_service:s0
broadcastradio u:object_r:broadcastradio_service:s0
+bufferhubd u:object_r:buffer_hub_service:s0
carrier_config u:object_r:radio_service:s0
clipboard u:object_r:clipboard_service:s0
com.android.net.IProxyService u:object_r:IProxyService_service:s0
diff --git a/private/shell.te b/private/shell.te
index 130a13015944d70af19907daa7ac2262bdbe256c..121377799bc90d00eed5a2921015dd53e5d000e5 100644
--- a/private/shell.te
+++ b/private/shell.te
@@ -51,3 +51,6 @@ binder_call(shell, statsd);
# Allow shell to read and unlink traces stored in /data/misc/perfetto-traces.
allow shell perfetto_traces_data_file:dir rw_dir_perms;
allow shell perfetto_traces_data_file:file r_file_perms;
+
+# Allow shell-based "dumpsys" to call into bufferhubd.
+binder_call(shell, bufferhubd);
diff --git a/public/bufferhubd.te b/public/bufferhubd.te
index 580462c08feb614cccc7d706727f273ff17d897e..10826d3ddf8e918253c80918eb14fc23a3c40b73 100644
--- a/public/bufferhubd.te
+++ b/public/bufferhubd.te
@@ -4,6 +4,7 @@ type bufferhubd_exec, exec_type, file_type;
hal_client_domain(bufferhubd, hal_graphics_allocator)
+# TODO(b/112338294): remove these after migrate to Binder
pdx_server(bufferhubd, bufferhub_client)
pdx_client(bufferhubd, performance_client)