From 36ecd08dc1627a7ed9c0ef498b41c40a66d646b0 Mon Sep 17 00:00:00 2001 From: Todd Kennedy Date: Wed, 11 May 2016 13:54:56 -0700 Subject: [PATCH] Remove STOPSHIP Instead of tracking a one-off variable, use the version code to properly determine a pre-N OTA. Bug: 27872764 Change-Id: Ib80b96ebddfa8bec398e02137ec26ce006164921 --- .../server/pm/PackageManagerService.java | 9 +++---- .../java/com/android/server/pm/Settings.java | 26 ------------------- 2 files changed, 4 insertions(+), 31 deletions(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index da8799d5c1bf2..d02eb3b078aca 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -2379,6 +2379,10 @@ public class PackageManagerService extends IPackageManager.Stub { mPromoteSystemApps = mIsUpgrade && ver.sdkVersion <= Build.VERSION_CODES.LOLLIPOP_MR1; + // When upgrading from pre-N, we need to handle package extraction like first boot, + // as there is no profiling data available. + mIsPreNUpgrade = mIsUpgrade && ver.sdkVersion < Build.VERSION_CODES.N; + // save off the names of pre-existing system packages prior to scanning; we don't // want to automatically grant runtime permissions for new system apps if (mPromoteSystemApps) { @@ -2391,11 +2395,6 @@ public class PackageManagerService extends IPackageManager.Stub { } } - // When upgrading from pre-N, we need to handle package extraction like first boot, - // as there is no profiling data available. - mIsPreNUpgrade = !mSettings.isNWorkDone(); - mSettings.setNWorkDone(); - // Collect vendor overlay packages. // (Do this before scanning any apps.) // For security and version matching reason, only consider diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java index 7fc0e8c13aca9..4336a1507bb2e 100644 --- a/services/core/java/com/android/server/pm/Settings.java +++ b/services/core/java/com/android/server/pm/Settings.java @@ -191,7 +191,6 @@ final class Settings { private static final String TAG_DEFAULT_BROWSER = "default-browser"; private static final String TAG_DEFAULT_DIALER = "default-dialer"; private static final String TAG_VERSION = "version"; - private static final String TAG_N_WORK = "n-work"; private static final String ATTR_NAME = "name"; private static final String ATTR_USER = "user"; @@ -398,17 +397,6 @@ final class Settings { public final KeySetManagerService mKeySetManagerService = new KeySetManagerService(mPackages); - /** - * Used to track whether N+ work has been done. This is similar to the file-system level - * and denotes that first-boot or upgrade-to-N work has been done. - * - * Note: the flag has been added to a) allow tracking while an API level check is impossible - * and b) to merge upgrade as well as first boot (because the flag is false, by default). - * - * STOPSHIP: b/27872764 - */ - private boolean mIsNWorkDone = false; - Settings(Object lock) { this(Environment.getDataDirectory(), lock); } @@ -2396,10 +2384,6 @@ final class Settings { mKeySetManagerService.writeKeySetManagerServiceLPr(serializer); - serializer.startTag(null, TAG_N_WORK); - serializer.attribute(null, ATTR_DONE, Boolean.toString(mIsNWorkDone)); - serializer.endTag(null, TAG_N_WORK); - serializer.endTag(null, "packages"); serializer.endDocument(); @@ -2937,8 +2921,6 @@ final class Settings { ver.sdkVersion = XmlUtils.readIntAttribute(parser, ATTR_SDK_VERSION); ver.databaseVersion = XmlUtils.readIntAttribute(parser, ATTR_SDK_VERSION); ver.fingerprint = XmlUtils.readStringAttribute(parser, ATTR_FINGERPRINT); - } else if (TAG_N_WORK.equals(tagName)) { - mIsNWorkDone = XmlUtils.readBooleanAttribute(parser, ATTR_DONE, false); } else { Slog.w(PackageManagerService.TAG, "Unknown element under : " + parser.getName()); @@ -4235,14 +4217,6 @@ final class Settings { return res; } - public boolean isNWorkDone() { - return mIsNWorkDone; - } - - void setNWorkDone() { - mIsNWorkDone = true; - } - static void printFlags(PrintWriter pw, int val, Object[] spec) { pw.print("[ "); for (int i=0; i