aboutsummaryrefslogtreecommitdiffstats
path: root/android/avd/info.c
diff options
context:
space:
mode:
Diffstat (limited to 'android/avd/info.c')
-rw-r--r--android/avd/info.c25
1 files changed, 23 insertions, 2 deletions
diff --git a/android/avd/info.c b/android/avd/info.c
index a9fc711..4df5969 100644
--- a/android/avd/info.c
+++ b/android/avd/info.c
@@ -886,9 +886,20 @@ avdInfo_getKernelPath( AvdInfo* i )
* for our target architecture.
*/
char temp[PATH_MAX], *p = temp, *end = p + sizeof(temp);
+ const char* suffix = "";
+ char* abi;
+
+ /* If the target ABI is armeabi-v7a, then look for
+ * kernel-qemu-armv7 instead of kernel-qemu in the prebuilt
+ * directory. */
+ abi = path_getBuildTargetAbi(i->androidOut);
+ if (!strcmp(abi,"armeabi-v7a")) {
+ suffix = "-armv7";
+ }
+ AFREE(abi);
- p = bufprint(temp, end, "%s/prebuilt/android-%s/kernel/kernel-qemu",
- i->androidBuildRoot, i->targetArch);
+ p = bufprint(temp, end, "%s/prebuilt/android-%s/kernel/kernel-qemu%s",
+ i->androidBuildRoot, i->targetArch, suffix);
if (p >= end || !path_exists(temp)) {
derror("bad workspace: cannot find prebuilt kernel in: %s", temp);
exit(1);
@@ -1024,6 +1035,16 @@ avdInfo_inAndroidBuild( AvdInfo* i )
}
char*
+avdInfo_getTargetAbi( AvdInfo* i )
+{
+ /* For now, we can't get the ABI from SDK AVDs */
+ if (!i->inAndroidBuild)
+ return NULL;
+
+ return path_getBuildTargetAbi(i->androidOut);
+}
+
+char*
avdInfo_getTracePath( AvdInfo* i, const char* traceName )
{
char tmp[MAX_PATH], *p=tmp, *end=p + sizeof(tmp);