diff options
author | Sergey Shambir <[email protected]> | 2013-02-24 18:04:36 +0400 |
---|---|---|
committer | Sergey Shambir <[email protected]> | 2013-02-26 22:44:57 +0100 |
commit | a128d38394520845d2ab8e7f6d2e016c9206667c (patch) | |
tree | 85b6cc1c8957006e5c4e85fd503f2f938b0d4d06 /src/plugins/android/androidrunner.cpp | |
parent | ebcb4209b4aa6d9474a5ad65a38ffd2ed5d0d27e (diff) |
Android: select device with "adb -d" if it have invalid serial no
Works only if no correctly detected devices attached to adb.
Sometimes serial number becomes '????-????-????' on linux because udev
rules are not configured, handling them without configuring will be
useful.
Also i have 2 phones that have no serial number at all on stock rom.
Serial number disappears on some smartphones with CyanogenMod
http://forum.cyanogenmod.org/topic/64522-i-have-no-serial-number/
Change-Id: I1a992eb2537342934c60d79c9180edd955aa7862
Reviewed-by: BogDan Vatra <[email protected]>
Diffstat (limited to 'src/plugins/android/androidrunner.cpp')
-rw-r--r-- | src/plugins/android/androidrunner.cpp | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/src/plugins/android/androidrunner.cpp b/src/plugins/android/androidrunner.cpp index 02373108f38..7b7d9633437 100644 --- a/src/plugins/android/androidrunner.cpp +++ b/src/plugins/android/androidrunner.cpp @@ -80,7 +80,7 @@ void AndroidRunner::checkPID() // Detect busybox, as we need to pass -w to it to get wide output. psProc.start(AndroidConfigurations::instance().adbToolPath().toString(), - QStringList() << QLatin1String("-s") << m_deviceSerialNumber + AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) << QLatin1String("shell") << QLatin1String("readlink") << QLatin1String("$(which ps)")); if (!psProc.waitForFinished(-1)) { psProc.kill(); @@ -93,7 +93,7 @@ void AndroidRunner::checkPID() } psProc.start(AndroidConfigurations::instance().adbToolPath().toString(), - QStringList() << QLatin1String("-s") << m_deviceSerialNumber + AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) << QLatin1String("shell") << psCmd); if (!psProc.waitForFinished(-1)) { psProc.kill(); @@ -161,9 +161,8 @@ void AndroidRunner::asyncStart() QString extraParams; QProcess adbStarProc; if (m_useCppDebugger) { - QStringList arguments; - arguments << QLatin1String("-s") << m_deviceSerialNumber - << QLatin1String("forward") << QString::fromLatin1("tcp%1").arg(m_remoteGdbChannel) + QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber); + arguments << QLatin1String("forward") << QString::fromLatin1("tcp%1").arg(m_remoteGdbChannel) << QString::fromLatin1("localfilesystem:/data/data/%1/debug-socket").arg(m_packageName); adbStarProc.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments); if (!adbStarProc.waitForStarted()) { @@ -177,10 +176,9 @@ void AndroidRunner::asyncStart() extraParams = QLatin1String("-e native_debug true -e gdbserver_socket +debug-socket"); } if (m_useQmlDebugger) { - QStringList arguments; + QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber); QString port = QString::fromLatin1("tcp:%1").arg(m_qmlPort); - arguments << QLatin1String("-s") << m_deviceSerialNumber - << QLatin1String("forward") << port << port; // currently forward to same port on device and host + arguments << QLatin1String("forward") << port << port; // currently forward to same port on device and host adbStarProc.start(AndroidConfigurations::instance().adbToolPath().toString(), arguments); if (!adbStarProc.waitForStarted()) { emit remoteProcessFinished(tr("Failed to forward QML debugging ports. Reason: %1.").arg(adbStarProc.errorString())); @@ -204,9 +202,8 @@ void AndroidRunner::asyncStart() } extraParams = extraParams.trimmed(); - QStringList arguments; - arguments << QLatin1String("-s") << m_deviceSerialNumber - << QLatin1String("shell") << QLatin1String("am") + QStringList arguments = AndroidDeviceInfo::adbSelector(m_deviceSerialNumber); + arguments << QLatin1String("shell") << QLatin1String("am") << QLatin1String("start") << QLatin1String("-n") << m_intentName; if (extraParams.length()) @@ -246,7 +243,7 @@ void AndroidRunner::startLogcat() { m_checkPIDTimer.start(1000); // check if the application is alive every 1 seconds m_adbLogcatProcess.start(AndroidConfigurations::instance().adbToolPath().toString(), - QStringList() << QLatin1String("-s") << m_deviceSerialNumber + AndroidDeviceInfo::adbSelector(m_deviceSerialNumber) << QLatin1String("logcat")); emit remoteProcessStarted(5039); } @@ -294,9 +291,8 @@ void AndroidRunner::logcatReadStandardOutput() void AndroidRunner::adbKill(qint64 pid, const QString &device, int timeout, const QString &runAsPackageName) { QProcess process; - QStringList arguments; + QStringList arguments = AndroidDeviceInfo::adbSelector(device); - arguments << QLatin1String("-s") << device; arguments << QLatin1String("shell"); if (runAsPackageName.size()) arguments << QLatin1String("run-as") << runAsPackageName; |