From dd894308958ca0af1a79d6fe8705458d0bae3629 Mon Sep 17 00:00:00 2001 From: baldurk Date: Tue, 19 Nov 2019 23:02:36 +0000 Subject: [PATCH] Fail sooner if package fails to start completely * This may be due to bad intent args --- renderdoc/android/android.cpp | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/renderdoc/android/android.cpp b/renderdoc/android/android.cpp index 18fa8f786..93d4ec7ac 100644 --- a/renderdoc/android/android.cpp +++ b/renderdoc/android/android.cpp @@ -1072,13 +1072,6 @@ ExecuteResult AndroidRemoteServer::ExecuteAndInject(const char *a, const char *w Android::adbExecCommand( m_deviceID, StringFormat::Fmt("shell am start -S -D -n %s/%s %s", packageName.c_str(), activityName.c_str(), intentArgs.c_str())); - - // adb shell ps | grep $PACKAGE | awk '{print $2}') - pid = Android::GetCurrentPID(m_deviceID, packageName); - - if(pid == 0) - RDCERR("Couldn't get PID when launching %s with activity %s", packageName.c_str(), - activityName.c_str()); } else { @@ -1093,6 +1086,18 @@ ExecuteResult AndroidRemoteServer::ExecuteAndInject(const char *a, const char *w jdwpPort = 0; } + // adb shell ps | grep $PACKAGE | awk '{print $2}') + pid = Android::GetCurrentPID(m_deviceID, packageName); + + if(pid == 0) + { + RDCERR("Couldn't get PID when launching %s with activity %s and intent args %s", + packageName.c_str(), activityName.c_str(), intentArgs.c_str()); + ret.status = ReplayStatus::InjectionFailed; + ret.ident = 0; + return; + } + Android::adbForwardPorts(m_portbase, m_deviceID, jdwpPort, pid, false); // sleep a little to let the ports initialise