diff --git a/private/system_server.te b/private/system_server.te
index e1c5f6dcec5b8f625ccfca77b5b54e20202e69c5..bd895cfd54b903a170ab31bd73a1e0a6db2c07fa 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -190,6 +190,7 @@ binder_call(system_server, hal_vibrator)
 hal_client_domain(system_server, hal_vibrator)
 binder_call(system_server, hal_vr)
 hal_client_domain(system_server, hal_vr)
+hal_client_domain(system_server, hal_weaver)
 hal_client_domain(system_server, hal_wifi)
 hal_client_domain(system_server, hal_wifi_offload)
 
diff --git a/public/attributes b/public/attributes
index da399c9fa1b21c4a1eda2b3a3bcf46b344929316..e6aa3df124c6f3a4dae8fdb67bb4b8d5c286f604 100644
--- a/public/attributes
+++ b/public/attributes
@@ -240,6 +240,9 @@ attribute hal_vibrator_server;
 attribute hal_vr;
 attribute hal_vr_client;
 attribute hal_vr_server;
+attribute hal_weaver;
+attribute hal_weaver_client;
+attribute hal_weaver_server;
 attribute hal_wifi;
 attribute hal_wifi_client;
 attribute hal_wifi_server;
diff --git a/public/hal_weaver.te b/public/hal_weaver.te
new file mode 100644
index 0000000000000000000000000000000000000000..78d2b75531320156a809e69652df426e45c02c69
--- /dev/null
+++ b/public/hal_weaver.te
@@ -0,0 +1,2 @@
+# HwBinder IPC from client to server
+binder_call(hal_weaver_client, hal_weaver_server)