From 005f5116a54c41e0a4d73c236ba585e529dd523c Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Tue, 18 Nov 2014 12:55:21 +0100 Subject: [PATCH] Android: Fix abi detection for 64bit devices Change-Id: Idde12cd5bcd54d007245d3bdd93e8ab47d7f214b Reviewed-by: Paul Olav Tvete --- src/plugins/android/androidconfigurations.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/plugins/android/androidconfigurations.cpp b/src/plugins/android/androidconfigurations.cpp index 348157d621b..ac52f0e651e 100644 --- a/src/plugins/android/androidconfigurations.cpp +++ b/src/plugins/android/androidconfigurations.cpp @@ -840,6 +840,24 @@ bool AndroidConfig::hasFinishedBooting(const QString &device) const QStringList AndroidConfig::getAbis(const QString &device) const { QStringList result; + // First try via ro.product.cpu.abilist + QStringList arguments = AndroidDeviceInfo::adbSelector(device); + arguments << QLatin1String("shell") << QLatin1String("getprop"); + arguments << QLatin1String("ro.product.cpu.abilist"); + QProcess adbProc; + adbProc.start(adbToolPath().toString(), arguments); + if (!adbProc.waitForFinished(10000)) { + adbProc.kill(); + return result; + } + QString output = QString::fromLocal8Bit(adbProc.readAll().trimmed()); + if (!output.isEmpty()) { + QStringList result = output.split(QLatin1Char(',')); + if (!result.isEmpty()) + return result; + } + + // Fall back to ro.product.cpu.abi, ro.product.cpu.abi2 ... for (int i = 1; i < 6; ++i) { QStringList arguments = AndroidDeviceInfo::adbSelector(device); arguments << QLatin1String("shell") << QLatin1String("getprop");