diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 175f6c1c5655f..148688fc4aa59 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -10784,6 +10784,13 @@ public class ActivityManagerService extends IActivityManager.Stub pw.println("\n\n** Cache info for pid " + pid + " [" + r.processName + "] **"); pw.flush(); try { + if (pid == Process.myPid()) { + // Directly dump to target fd for local dump to avoid hang. + try (ParcelFileDescriptor pfd = ParcelFileDescriptor.fromFd(fd.getInt$())) { + thread.dumpCacheInfo(pfd, args); + } + continue; + } TransferPipe tp = new TransferPipe(); try { thread.dumpCacheInfo(tp.getWriteFd(), args);