diff --git a/private/file_contexts b/private/file_contexts
index b752b87cd4249ef2c2718e5379d7403c53a9f7a0..0bdb1f7eef9e621a48c94831cb5a054df101e31c 100644
--- a/private/file_contexts
+++ b/private/file_contexts
@@ -107,6 +107,7 @@
 /dev/ptmx		u:object_r:ptmx_device:s0
 /dev/pvrsrvkm		u:object_r:gpu_device:s0
 /dev/kmsg		u:object_r:kmsg_device:s0
+/dev/kmsg_debug	u:object_r:kmsg_debug_device:s0
 /dev/null		u:object_r:null_device:s0
 /dev/nvhdcp1		u:object_r:video_device:s0
 /dev/random		u:object_r:random_device:s0
diff --git a/public/crash_dump.te b/public/crash_dump.te
index ee617a171cf7fdc90531093b61943d88e65ede2f..c101b34d6b12a6516a11be95890368605976e8bc 100644
--- a/public/crash_dump.te
+++ b/public/crash_dump.te
@@ -15,6 +15,9 @@ dontaudit crash_dump self:capability { sys_ptrace };
 
 userdebug_or_eng(`
   allow crash_dump logd:process { ptrace signal sigchld sigstop sigkill };
+
+  # Let crash_dump write to /dev/kmsg_debug crashes that happen before logd comes up.
+  allow crash_dump kmsg_debug_device:chr_file { open append };
 ')
 
 # Use inherited file descriptors
diff --git a/public/device.te b/public/device.te
index 4a3bec91f0bd14a6fd2bce9b5c2d05ca06d23833..0f64bfabbfb16611e1bf5f91a7def6cb9e4b530d 100644
--- a/public/device.te
+++ b/public/device.te
@@ -36,6 +36,7 @@ type mtp_device, dev_type, mlstrustedobject;
 type nfc_device, dev_type;
 type ptmx_device, dev_type, mlstrustedobject;
 type kmsg_device, dev_type;
+type kmsg_debug_device, dev_type;
 type null_device, dev_type, mlstrustedobject;
 type random_device, dev_type, mlstrustedobject;
 type sensors_device, dev_type;
diff --git a/public/init.te b/public/init.te
index a007fc2742f39bcdd46b37c831d482b5ca83028e..1903cfd74a830e8d08b9bb59b2950e9d87599c1e 100644
--- a/public/init.te
+++ b/public/init.te
@@ -13,6 +13,10 @@ allow init tmpfs:chr_file { create setattr unlink rw_file_perms };
 # /dev/kmsg
 allow init tmpfs:chr_file relabelfrom;
 allow init kmsg_device:chr_file { write relabelto };
+# /dev/kmsg_debug
+userdebug_or_eng(`
+  allow init kmsg_debug_device:chr_file { write relabelto };
+')
 # /dev/__properties__
 allow init properties_device:dir relabelto;
 allow init properties_serial:file { write relabelto };