From cb8031e1e09cfb0bb3b510457e42643e7180ad39 Mon Sep 17 00:00:00 2001 From: Fabien Sanglard Date: Fri, 20 Jan 2023 23:53:02 +0000 Subject: [PATCH] Restore correct app State when combing "-D" and "--suspend" flags Starting an app in debug (-D), suspended (--suspend) mode will result in the app unable to restore its initial state. ActivityManagerService.setDebugApp has side effects. It saves a state that is only restore later during the app booting. Calling it twice in a row, "double saves" which resulting forgetting the initial state. Test: Manual Bug: 266233210 Change-Id: I7819a3c0f7e46994548c584c4c5d61f6d24faf61 --- .../com/android/server/am/ActivityManagerService.java | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index de87a0cf7f981..adb4a97ddd0a9 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -17842,11 +17842,9 @@ public class ActivityManagerService extends IActivityManager.Stub */ synchronized (wmLock) { if ((startFlags & ActivityManager.START_FLAG_DEBUG) != 0) { - setDebugApp(aInfo.processName, true, false); - } - - if ((startFlags & ActivityManager.START_FLAG_DEBUG_SUSPEND) != 0) { - setDebugApp(aInfo.processName, true, false, true); + boolean suspend = + (startFlags & ActivityManager.START_FLAG_DEBUG_SUSPEND) != 0; + setDebugApp(aInfo.processName, true, false, suspend); } if ((startFlags & ActivityManager.START_FLAG_NATIVE_DEBUGGING) != 0) {