From d6520122a2781e7ca54d255936c2e3f58797cb9c Mon Sep 17 00:00:00 2001 From: BogDan Vatra <bogdan@kde.org> Date: Fri, 19 Jun 2015 16:20:30 +0300 Subject: [PATCH] Android: Pull the right libc.so from device. On an 64 bit Android, libc.so for 64 bit apps is located in /system/lib64/. Change-Id: I93f0e4658e552c9a32822706bab3e503642a8c59 Reviewed-by: Daniel Teske <daniel.teske@theqtcompany.com> --- src/plugins/android/androiddeployqtstep.cpp | 13 +++++++++---- src/plugins/android/androiddeployqtstep.h | 1 + 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/plugins/android/androiddeployqtstep.cpp b/src/plugins/android/androiddeployqtstep.cpp index 770f9566f39..dd5ae88be2f 100644 --- a/src/plugins/android/androiddeployqtstep.cpp +++ b/src/plugins/android/androiddeployqtstep.cpp @@ -203,12 +203,16 @@ bool AndroidDeployQtStep::init() m_avdName = info.avdname; m_serialNumber = info.serialNumber; m_appProcess = QLatin1String("readlink -f /system/bin/app_process"); - if (info.cpuAbi.contains(QLatin1String("arm64-v8a"))) { + m_libdir = QLatin1String("lib"); + if (info.cpuAbi.contains(QLatin1String("arm64-v8a")) || + info.cpuAbi.contains(QLatin1String("x86_64"))) { ProjectExplorer::ToolChain *tc = ProjectExplorer::ToolChainKitInformation::toolChain(target()->kit()); - if (tc && tc->targetAbi().wordWidth() == 64) + if (tc && tc->targetAbi().wordWidth() == 64) { m_appProcess += QLatin1String("64"); - else + m_libdir += QLatin1String("64"); + } else { m_appProcess += QLatin1String("32"); + } } AndroidManager::setDeviceSerialNumber(target(), m_serialNumber); @@ -436,9 +440,10 @@ void AndroidDeployQtStep::run(QFutureInterface<bool> &fi) emit addOutput(tr("Package deploy: Failed to pull \"%1\" to \"%2\".") .arg(remoteAppProcessFile).arg(localAppProcessFile), ErrorMessageOutput); } + runCommand(m_adbPath, AndroidDeviceInfo::adbSelector(m_serialNumber) << QLatin1String("pull") - << QLatin1String("/system/lib/libc.so") + << QLatin1String("/system/") + m_libdir + QLatin1String("/libc.so") << QString::fromLatin1("%1/libc.so").arg(m_buildDirectory)); fi.reportResult(returnValue == Success ? true : false); diff --git a/src/plugins/android/androiddeployqtstep.h b/src/plugins/android/androiddeployqtstep.h index 5dbd493f40c..4dea717671b 100644 --- a/src/plugins/android/androiddeployqtstep.h +++ b/src/plugins/android/androiddeployqtstep.h @@ -128,6 +128,7 @@ private: QString m_avdName; QString m_apkPath; QString m_appProcess; + QString m_libdir; QString m_targetArch; bool m_uninstallPreviousPackage; -- GitLab