diff --git a/renderdoc/android/android.cpp b/renderdoc/android/android.cpp index 6d6eac660..ed68d83a3 100644 --- a/renderdoc/android/android.cpp +++ b/renderdoc/android/android.cpp @@ -579,7 +579,7 @@ extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_EnumerateAndroidDevices(rdc extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_AndroidInitialise() { - Android::adbExecCommand("", "start-server", ".", true); + Android::initAdb(); } extern "C" RENDERDOC_API void RENDERDOC_CC RENDERDOC_AndroidShutdown() diff --git a/renderdoc/android/android.h b/renderdoc/android/android.h index a196cdf4b..d1e93e27a 100644 --- a/renderdoc/android/android.h +++ b/renderdoc/android/android.h @@ -37,6 +37,7 @@ void ResetCaptureSettings(const std::string &deviceID); void ExtractDeviceIDAndIndex(const std::string &hostname, int &index, std::string &deviceID); Process::ProcessResult adbExecCommand(const std::string &deviceID, const std::string &args, const string &workDir = ".", bool silent = false); +void initAdb(); void shutdownAdb(); bool InjectWithJDWP(const std::string &deviceID, uint16_t jdwpport); }; diff --git a/renderdoc/android/android_tools.cpp b/renderdoc/android/android_tools.cpp index ee88a8bcc..29f7a95ea 100644 --- a/renderdoc/android/android_tools.cpp +++ b/renderdoc/android/android_tools.cpp @@ -307,6 +307,12 @@ Process::ProcessResult adbExecCommand(const std::string &device, const std::stri deviceArgs = StringFormat::Fmt("-s %s %s", device.c_str(), args.c_str()); return execCommand(adb, deviceArgs, workDir, silent); } +void initAdb() +{ + // we don't use adbExecCommand because we need to be sure we don't wait for it to exit + std::string adb = getToolPath(ToolDir::PlatformTools, "adb", false); + Process::LaunchProcess(adb.c_str(), ".", "start-server", true); +} void shutdownAdb() { if(adbKillServer)