Set Build.CPU_ABI{2} from SUPPORTED_{32,64}_BIT_ABIS

32 bit processes will always see values from SUPPORTED_32_BIT_ABIS
and 64 bit processes will always see values from SUPPORTED_64_BIT_ABIS.

bug: 17367265
Change-Id: I9996034c190f9213986b9b1a4ee0e38eca91c7ad
This commit is contained in:
Narayan Kamath
2014-09-30 13:20:57 +01:00
parent bc156ba430
commit eff258c305

View File

@@ -20,6 +20,7 @@ import android.text.TextUtils;
import android.util.Slog;
import com.android.internal.telephony.TelephonyProperties;
import dalvik.system.VMRuntime;
/**
* Information about the current build, extracted from system properties.
@@ -51,7 +52,7 @@ public class Build {
* @deprecated Use {@link #SUPPORTED_ABIS} instead.
*/
@Deprecated
public static final String CPU_ABI = getString("ro.product.cpu.abi");
public static final String CPU_ABI;
/**
* The name of the second instruction set (CPU type + ABI convention) of native code.
@@ -59,7 +60,7 @@ public class Build {
* @deprecated Use {@link #SUPPORTED_ABIS} instead.
*/
@Deprecated
public static final String CPU_ABI2 = getString("ro.product.cpu.abi2");
public static final String CPU_ABI2;
/** The manufacturer of the product/hardware. */
public static final String MANUFACTURER = getString("ro.product.manufacturer");
@@ -117,6 +118,27 @@ public class Build {
getStringList("ro.product.cpu.abilist64", ",");
static {
/*
* Adjusts CPU_ABI and CPU_ABI2 depending on whether or not a given process is 64 bit.
* 32 bit processes will always see 32 bit ABIs in these fields for backward
* compatibility.
*/
final String[] abiList;
if (VMRuntime.getRuntime().is64Bit()) {
abiList = SUPPORTED_64_BIT_ABIS;
} else {
abiList = SUPPORTED_32_BIT_ABIS;
}
CPU_ABI = abiList[0];
if (abiList.length > 1) {
CPU_ABI2 = abiList[1];
} else {
CPU_ABI2 = "";
}
}
/** Various version strings. */
public static class VERSION {
/**