diff --git a/private/compat/28.0/28.0.ignore.cil b/private/compat/28.0/28.0.ignore.cil
index eb58828d175c793553469f0a7264967d18707a3a..900c8c27c9a24d1ebd74a043fbfc7702a57ef36f 100644
--- a/private/compat/28.0/28.0.ignore.cil
+++ b/private/compat/28.0/28.0.ignore.cil
@@ -39,6 +39,7 @@
     hal_system_suspend_default_exec
     hal_system_suspend_default_tmpfs
     heapprofd
+    heapprofd_enabled_prop
     heapprofd_exec
     heapprofd_prop
     heapprofd_socket
diff --git a/private/property_contexts b/private/property_contexts
index adede99b522725270f399c1e536845f82a03aa64..5660d985c260afae8fefa8bb9444aadb2bc93a56 100644
--- a/private/property_contexts
+++ b/private/property_contexts
@@ -64,6 +64,7 @@ persist.service.        u:object_r:system_prop:s0
 persist.service.bdroid. u:object_r:bluetooth_prop:s0
 persist.security.       u:object_r:system_prop:s0
 persist.traced.enable   u:object_r:traced_enabled_prop:s0
+persist.heapprofd.enable u:object_r:heapprofd_enabled_prop:s0
 persist.vendor.overlay.  u:object_r:overlay_prop:s0
 ro.boot.vendor.overlay.  u:object_r:overlay_prop:s0
 ro.boottime.             u:object_r:boottime_prop:s0
diff --git a/public/property.te b/public/property.te
index fcbf365561cf4b5cde010d7cf73845938170b340..6ee568c84b30ceb8124204f24b14fda47c9e1c98 100644
--- a/public/property.te
+++ b/public/property.te
@@ -38,6 +38,7 @@ type exported_secure_prop, property_type;
 type ffs_prop, property_type, core_property_type;
 type fingerprint_prop, property_type, core_property_type;
 type firstboot_prop, property_type;
+type heapprofd_enabled_prop, property_type;
 type heapprofd_prop, property_type;
 type hwservicemanager_prop, property_type;
 type last_boot_reason_prop, property_type;
@@ -397,6 +398,7 @@ compatible_property_only(`
     -device_config_reset_performed_prop
     -device_config_boot_count_prop
     -device_config_flags_health_check_prop
+    -heapprofd_enabled_prop
     -heapprofd_prop
     -hwservicemanager_prop
     -last_boot_reason_prop
diff --git a/public/shell.te b/public/shell.te
index 26f44f6f41d8a677396f529abc04eb8e4c775dc6..7201df0ec624132afc217cd60e2af09f8390b74c 100644
--- a/public/shell.te
+++ b/public/shell.te
@@ -75,6 +75,9 @@ set_prop(shell, traced_enabled_prop)
 userdebug_or_eng(`set_prop(shell, log_prop)')
 # logpersist script
 userdebug_or_eng(`set_prop(shell, logpersistd_logging_prop)')
+# Allow shell to start/stop heapprofd via the persist.heapprofd.enable
+# property.
+set_prop(shell, heapprofd_enabled_prop)
 
 userdebug_or_eng(`
   # "systrace --boot" support - allow boottrace service to run