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; }
AvdInfo* avdInfo_newForAndroidBuild( const char* androidBuildRoot, const char* androidOut, AvdInfoParams* params ) { AvdInfo* i; ANEW0(i); i->inAndroidBuild = 1; i->androidBuildRoot = ASTRDUP(androidBuildRoot); i->androidOut = ASTRDUP(androidOut); i->contentPath = ASTRDUP(androidOut); // Find the build.prop file and read it. char* buildPropPath = path_getBuildBuildProp(i->androidOut); if (buildPropPath) { _avdInfo_readPropertyFile(i, buildPropPath, i->buildProperties); free(buildPropPath); } // FInd the boot.prop file and read it. char* bootPropPath = path_getBuildBootProp(i->androidOut); if (bootPropPath) { _avdInfo_readPropertyFile(i, bootPropPath, i->bootProperties); free(bootPropPath); } _avdInfo_extractBuildProperties(i); i->deviceName = ASTRDUP("<build>"); /* out/target/product/<name>/config.ini, if exists, provide configuration * from build files. */ if (_avdInfo_getConfigIni(i) < 0 || _avdInfo_getCoreHwIniPath(i, i->androidOut) < 0) goto FAIL; /* Read the build skin's hardware.ini, if any */ _avdInfo_getBuildSkinHardwareIni(i); return i; FAIL: avdInfo_free(i); return NULL; }