Persist the cpuAbiOverride setting.
If an app is installed with an ABI override (adb install -r --abi)
we should remember this so that we don't revert to the scan derived
ABI on the next reboot.
bug: 16476618
Change-Id: I6085bc0099eb613dd9d3b07113c7c13859780697
diff --git a/services/core/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
index e29332c..bf13fd9 100644
--- a/services/core/java/com/android/server/pm/PackageSettingBase.java
+++ b/services/core/java/com/android/server/pm/PackageSettingBase.java
@@ -64,8 +64,25 @@
@Deprecated
String legacyNativeLibraryPathString;
+ /**
+ * The primary CPU abi for this package. This value is regenerated at every
+ * boot scan.
+ */
String primaryCpuAbiString;
+
+ /**
+ * The secondary CPU abi for this package. This value is regenerated at every
+ * boot scan.
+ */
String secondaryCpuAbiString;
+
+ /**
+ * The install time CPU override, if any. This value is written at install time
+ * and doesn't change during the life of an install. If non-null,
+ * {@code primaryCpuAbiString} will contain the same value.
+ */
+ String cpuAbiOverrideString;
+
long timeStamp;
long firstInstallTime;
long lastUpdateTime;
@@ -94,12 +111,13 @@
String installerPackageName;
PackageSettingBase(String name, String realName, File codePath, File resourcePath,
String legacyNativeLibraryPathString, String primaryCpuAbiString,
- String secondaryCpuAbiString, int pVersionCode, int pkgFlags) {
+ String secondaryCpuAbiString, String cpuAbiOverrideString,
+ int pVersionCode, int pkgFlags) {
super(pkgFlags);
this.name = name;
this.realName = realName;
init(codePath, resourcePath, legacyNativeLibraryPathString, primaryCpuAbiString,
- secondaryCpuAbiString, pVersionCode);
+ secondaryCpuAbiString, cpuAbiOverrideString, pVersionCode);
}
/**
@@ -118,6 +136,7 @@
legacyNativeLibraryPathString = base.legacyNativeLibraryPathString;
primaryCpuAbiString = base.primaryCpuAbiString;
secondaryCpuAbiString = base.secondaryCpuAbiString;
+ cpuAbiOverrideString = base.cpuAbiOverrideString;
timeStamp = base.timeStamp;
firstInstallTime = base.firstInstallTime;
lastUpdateTime = base.lastUpdateTime;
@@ -145,7 +164,8 @@
}
void init(File codePath, File resourcePath, String legacyNativeLibraryPathString,
- String primaryCpuAbiString, String secondaryCpuAbiString, int pVersionCode) {
+ String primaryCpuAbiString, String secondaryCpuAbiString,
+ String cpuAbiOverrideString, int pVersionCode) {
this.codePath = codePath;
this.codePathString = codePath.toString();
this.resourcePath = resourcePath;
@@ -153,6 +173,7 @@
this.legacyNativeLibraryPathString = legacyNativeLibraryPathString;
this.primaryCpuAbiString = primaryCpuAbiString;
this.secondaryCpuAbiString = secondaryCpuAbiString;
+ this.cpuAbiOverrideString = cpuAbiOverrideString;
this.versionCode = pVersionCode;
}
@@ -185,6 +206,7 @@
primaryCpuAbiString = base.primaryCpuAbiString;
secondaryCpuAbiString = base.secondaryCpuAbiString;
+ cpuAbiOverrideString = base.cpuAbiOverrideString;
timeStamp = base.timeStamp;
firstInstallTime = base.firstInstallTime;
lastUpdateTime = base.lastUpdateTime;