static void _avdInfo_extractBuildProperties(AvdInfo* i) { i->targetArch = propertyFile_getTargetArch(i->buildProperties); if (!i->targetArch) { i->targetArch = ASTRDUP("arm"); D("Cannot find target CPU architecture, defaulting to '%s'", i->targetArch); } i->targetAbi = propertyFile_getTargetAbi(i->buildProperties); if (!i->targetAbi) { i->targetAbi = ASTRDUP("armeabi"); D("Cannot find target CPU ABI, defaulting to '%s'", i->targetAbi); } if (!i->apiLevel) { // Note: for regular AVDs, the API level is already extracted // from config.ini, besides, for older SDK platform images, // there is no build.prop file and the following function // would always return 1000, making the AVD unbootable!. i->apiLevel = propertyFile_getApiLevel(i->buildProperties); if (i->apiLevel < 3) { i->apiLevel = 3; D("Cannot find target API level, defaulting to %d", i->apiLevel); } } }
char* path_getBuildTargetArch(const char* androidOut) { char* buildPropPath = path_getBuildBuildProp(androidOut); if (!buildPropPath) { return NULL; } FileData buildProp[1]; fileData_initFromFile(buildProp, buildPropPath); char* ret = propertyFile_getTargetArch(buildProp); fileData_done(buildProp); AFREE(buildPropPath); return ret; }