diff --git a/private/crash_dump.te b/private/crash_dump.te
deleted file mode 100644
index b3e4d9ab9c01aa4e1084aa847641cec9fb466f04..0000000000000000000000000000000000000000
--- a/private/crash_dump.te
+++ /dev/null
@@ -1,4 +0,0 @@
-### HACK: Make crash_dump permissive temporarily to catch denials without breaking backtraces.
-userdebug_or_eng(`
-  permissive crash_dump;
-')
diff --git a/public/crash_dump.te b/public/crash_dump.te
index a4e903b6c86efda19d7a3a1ff2bfd96935e0a877..a0e278a1347ba1d78265222228df4465e097f5be 100644
--- a/public/crash_dump.te
+++ b/public/crash_dump.te
@@ -19,7 +19,10 @@ userdebug_or_eng(`
 
 # Use inherited file descriptors
 allow crash_dump domain:fd use;
-allow crash_dump domain:fifo_file write;
+
+# Write to the IPC pipe inherited from crashing processes.
+# Append to pipes given to us by processes requesting dumps (e.g. dumpstate)
+allow crash_dump domain:fifo_file { write append };
 
 r_dir_file(crash_dump, domain)
 allow crash_dump exec_type:file r_file_perms;