diff --git a/private/heapprofd.te b/private/heapprofd.te
index b7013d7c0514893e887305128383edca309c38ee..5a179907dace93219d412830ad548a0d8968f3dd 100644
--- a/private/heapprofd.te
+++ b/private/heapprofd.te
@@ -6,6 +6,9 @@ init_daemon_domain(heapprofd)
 set_prop(heapprofd, heapprofd_prop);
 
 userdebug_or_eng(`
+  # TODO(fmayer): We will also need this on user to read /proc/<pid>/cmdline
+  # and send signals.
+  typeattribute heapprofd mlstrustedsubject;
   # Allow to send signal to processes.
   # This excludes SIGKILL, SIGSTOP and SIGCHLD,
   # which are controlled by separate permissions.
diff --git a/public/file.te b/public/file.te
index 99a2c0d0eabe548536d15ef43e5c57dd2cf480d0..2a5e6f42920dd13d7d4a3db18340fd9e4441943b 100644
--- a/public/file.te
+++ b/public/file.te
@@ -395,7 +395,7 @@ type traced_consumer_socket, file_type, coredomain_socket, mlstrustedobject;
 type uncrypt_socket, file_type, coredomain_socket;
 type wpa_socket, file_type, data_file_type, core_data_file_type;
 type zygote_socket, file_type, coredomain_socket;
-type heapprofd_socket, file_type, coredomain_socket;
+type heapprofd_socket, file_type, coredomain_socket, mlstrustedobject;
 # UART (for GPS) control proc file
 type gps_control, file_type;