diff options
Diffstat (limited to 'android/avd/info.c')
-rw-r--r-- | android/avd/info.c | 25 |
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); |