diff --git a/private/system_server.te b/private/system_server.te
index e9ffa82b86360bfc7821812bea743e0a659a73a1..aa4c18a36b6e746b0d8802e8fb2a98599562a3f3 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -191,6 +191,7 @@ 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_wifi)
+hal_client_domain(system_server, hal_wifi_offload)
 
 # TODO(b/34274385): Remove this once Wi-Fi Supplicant HAL is guaranteed to be binderized on full
 # Treble devices. Passthrough Wi-Fi Supplicant HAL makes system_server touch wpa_socket which is a
diff --git a/private/wificond.te b/private/wificond.te
index 5476e33858dc85e21afeeec385417fb51d03bde1..cc76447458de1cf79f864720b00617631f78aedd 100644
--- a/private/wificond.te
+++ b/private/wificond.te
@@ -1,3 +1,4 @@
 typeattribute wificond coredomain;
 
 init_daemon_domain(wificond)
+hal_client_domain(wificond, hal_wifi_offload)
diff --git a/public/attributes b/public/attributes
index b7f0701ce7e8e3ce9ffa749590f99aeb0545ff4e..0c533ced5374ad1127576de8f3494e47d3ac382e 100644
--- a/public/attributes
+++ b/public/attributes
@@ -236,6 +236,9 @@ attribute hal_wifi_server;
 attribute hal_wifi_keystore;
 attribute hal_wifi_keystore_client;
 attribute hal_wifi_keystore_server;
+attribute hal_wifi_offload;
+attribute hal_wifi_offload_client;
+attribute hal_wifi_offload_server;
 attribute hal_wifi_supplicant;
 attribute hal_wifi_supplicant_client;
 attribute hal_wifi_supplicant_server;
diff --git a/public/hal_wifi_offload.te b/public/hal_wifi_offload.te
new file mode 100644
index 0000000000000000000000000000000000000000..dac5171b1e6c4d30923c0fcf77c7e4314e7fc75c
--- /dev/null
+++ b/public/hal_wifi_offload.te
@@ -0,0 +1,6 @@
+## HwBinder IPC from client to server, and callbacks
+binder_call(hal_wifi_offload_client, hal_wifi_offload_server)
+binder_call(hal_wifi_offload_server, hal_wifi_offload_client)
+
+r_dir_file(hal_wifi_offload, proc_net)
+r_dir_file(hal_wifi_offload, sysfs_type)
diff --git a/vendor/file_contexts b/vendor/file_contexts
index ea0ef29f6f01d9a2d5ba9cc2dde62442b062d228..c160e0af0aea4f7fae4ac153404bd26c7f8ba024 100644
--- a/vendor/file_contexts
+++ b/vendor/file_contexts
@@ -29,6 +29,7 @@
 /(vendor|system/vendor)/bin/hw/android\.hardware\.usb@1\.0-service            u:object_r:hal_usb_default_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.vibrator@1\.0-service       u:object_r:hal_vibrator_default_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.vr@1\.0-service             u:object_r:hal_vr_default_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.wifi\.offload@1\.0-service  u:object_r:hal_wifi_offload_default_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.wifi@1\.0-service           u:object_r:hal_wifi_default_exec:s0
 /(vendor|system/vendor)/bin/hw/wpa_supplicant                                 u:object_r:hal_wifi_supplicant_default_exec:s0
 /(vendor|system/vendor)/bin/hostapd                                           u:object_r:hostapd_exec:s0
diff --git a/vendor/hal_wifi_offload_default.te b/vendor/hal_wifi_offload_default.te
new file mode 100644
index 0000000000000000000000000000000000000000..95478626a37a39f16afd1e2685988e6bd0783a50
--- /dev/null
+++ b/vendor/hal_wifi_offload_default.te
@@ -0,0 +1,5 @@
+type hal_wifi_offload_default, domain;
+hal_server_domain(hal_wifi_offload_default, hal_wifi_offload)
+
+type hal_wifi_offload_default_exec, exec_type, file_type;
+init_daemon_domain(hal_wifi_offload_default)