From 095d911452eb7954bdf2a15725524d06e5c05b87 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Fri, 15 Nov 2013 16:29:53 +0100 Subject: [PATCH] Android: Skip boot to qt devices Change-Id: Ibce483484975e2817ad28ce00ea1f2d9ae06a497 Reviewed-by: Mitch Curtis --- src/plugins/android/androidconfigurations.cpp | 18 ++++++++++++++++++ src/plugins/android/androidconfigurations.h | 1 + 2 files changed, 19 insertions(+) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 592847a6b1b..698d3538df5 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -470,6 +470,8 @@ QVector AndroidConfigurations::connectedDevices(QString *erro foreach (const QByteArray &device, adbDevs) { const QString serialNo = QString::fromLatin1(device.left(device.indexOf('\t')).trimmed()); const QString deviceType = QString::fromLatin1(device.mid(device.indexOf('\t'))).trimmed(); + if (isBootToQt(serialNo)) + continue; AndroidDeviceInfo dev; dev.serialNumber = serialNo; dev.type = serialNo.startsWith(QLatin1String("emulator")) ? AndroidDeviceInfo::Emulator : AndroidDeviceInfo::Hardware; @@ -689,6 +691,22 @@ QString AndroidConfigurations::waitForAvd(int apiLevel, const QString &cpuAbi) c return QString(); } +bool AndroidConfigurations::isBootToQt(const QString &device) const +{ + // workaround for '????????????' serial numbers + QStringList arguments = AndroidDeviceInfo::adbSelector(device); + arguments << QLatin1String("shell") + << QLatin1String("ls -l /system/bin/appcontroller || ls -l /usr/bin/appcontroller && echo Boot2Qt"); + + QProcess adbProc; + adbProc.start(adbToolPath().toString(), arguments); + if (!adbProc.waitForFinished(-1)) { + adbProc.kill(); + return -1; + } + return adbProc.readAll().contains("Boot2Qt"); +} + int AndroidConfigurations::getSDKVersion(const QString &device) const { // workaround for '????????????' serial numbers diff --git a/src/plugins/android/androidconfigurations.h b/src/plugins/android/androidconfigurations.h index 38af17330fe..3845a3cc320 100644 --- a/src/plugins/android/androidconfigurations.h +++ b/src/plugins/android/androidconfigurations.h @@ -146,6 +146,7 @@ private: int getSDKVersion(const QString &device) const; QStringList getAbis(const QString &device) const; + bool isBootToQt(const QString &device) const; void updateAvailableNdkPlatforms(); void updateAvailableSdkPlatforms();