diff --git a/debuggerd.te b/debuggerd.te
index b94607485b5e2d7e17fd5c021a6a766f7652b228..4f84813be0865774f55447533fd73e136ea52b87 100644
--- a/debuggerd.te
+++ b/debuggerd.te
@@ -22,6 +22,10 @@ allow debuggerd domain:process { sigstop signal };
 allow debuggerd exec_type:file r_file_perms;
 # Access app library
 allow debuggerd system_data_file:file open;
+# Allow debuggerd to redirect a dump_backtrace request to itself.
+# This only happens on 64 bit systems, where all requests go to the 64 bit
+# debuggerd and get redirected to the 32 bit debuggerd if the process is 32 bit.
+allow debuggerd { drmserver mediaserver sdcardd surfaceflinger inputflinger }:debuggerd dump_backtrace;
 
 # Connect to system_server via /data/system/ndebugsocket.
 unix_socket_connect(debuggerd, system_ndebug, system_server)
diff --git a/dumpstate.te b/dumpstate.te
index 2324c25d97ff784aa0a9d7195b1d82139f17f7ca..ad4f2380874a5376788e9eca244cd94056e55a22 100644
--- a/dumpstate.te
+++ b/dumpstate.te
@@ -104,9 +104,6 @@ allow dumpstate net_data_file:file r_file_perms;
 allow dumpstate tombstone_data_file:dir r_dir_perms;
 allow dumpstate tombstone_data_file:file r_file_perms;
 
-# Access /system/bin executables to determine type of executable.
-allow dumpstate {drmserver_exec mediaserver_exec sdcardd_exec surfaceflinger_exec}:file r_file_perms;
-
 allow dumpstate {
     drmserver_service
     healthd_service