Clean up old code that only applied to upgrades from Android older than N.
This means completely removing the dexopt progress dialog, which was
only shown on such an upgrade. The fstrim message was blocked on that
dialog, which means it's practically never shown. This CL changes it to
show regardless.
Test: Boot
Bug: 251903639
Change-Id: Iba515866a085c0abb2e7701b95249a5863da2bc5
diff --git a/services/core/java/com/android/server/pm/DexOptHelper.java b/services/core/java/com/android/server/pm/DexOptHelper.java
index 1ee0b83..adb5084 100644
--- a/services/core/java/com/android/server/pm/DexOptHelper.java
+++ b/services/core/java/com/android/server/pm/DexOptHelper.java
@@ -40,7 +40,6 @@
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
-import android.app.ActivityManager;
import android.app.AppGlobals;
import android.content.Context;
import android.content.Intent;
@@ -59,8 +58,6 @@
import android.util.Log;
import android.util.Slog;
-import com.android.internal.R;
-import com.android.internal.annotations.GuardedBy;
import com.android.internal.logging.MetricsLogger;
import com.android.server.LocalManagerRegistry;
import com.android.server.art.ArtManagerLocal;
@@ -99,18 +96,6 @@
private final PackageManagerService mPm;
- public boolean isDexOptDialogShown() {
- synchronized (mLock) {
- return mDexOptDialogShown;
- }
- }
-
- // TODO: Is this lock really necessary?
- private final Object mLock = new Object();
-
- @GuardedBy("mLock")
- private boolean mDexOptDialogShown;
-
DexOptHelper(PackageManagerService pm) {
mPm = pm;
}
@@ -128,7 +113,7 @@
* which are (in order) {@code numberOfPackagesOptimized}, {@code numberOfPackagesSkipped}
* and {@code numberOfPackagesFailed}.
*/
- public int[] performDexOptUpgrade(List<PackageStateInternal> packageStates, boolean showDialog,
+ public int[] performDexOptUpgrade(List<PackageStateInternal> packageStates,
final int compilationReason, boolean bootComplete)
throws LegacyDexoptDisabledException {
Installer.checkLegacyDexoptDisabled();
@@ -220,18 +205,6 @@
+ numberOfPackagesToDexopt + ": " + pkg.getPackageName());
}
- if (showDialog) {
- try {
- ActivityManager.getService().showBootMessage(
- mPm.mContext.getResources().getString(R.string.android_upgrading_apk,
- numberOfPackagesVisited, numberOfPackagesToDexopt), true);
- } catch (RemoteException e) {
- }
- synchronized (mLock) {
- mDexOptDialogShown = true;
- }
- }
-
int pkgCompilationReason = compilationReason;
if (useProfileForDexopt) {
// Use background dexopt mode to try and use the profile. Note that this does not
@@ -364,9 +337,7 @@
boolean causeUpgrade = mPm.isDeviceUpgrading();
// First boot or factory reset.
- // Note: we also handle devices that are upgrading to N right now as if it is their
- // first boot, as they do not have profile data.
- boolean causeFirstBoot = mPm.isFirstBoot() || mPm.isPreNUpgrade();
+ boolean causeFirstBoot = mPm.isFirstBoot();
if (!causeUpgrade && !causeFirstBoot) {
return;
@@ -377,7 +348,7 @@
getPackagesForDexopt(snapshot.getPackageStates().values(), mPm);
final long startTime = System.nanoTime();
- final int[] stats = performDexOptUpgrade(pkgSettings, mPm.isPreNUpgrade() /* showDialog */,
+ final int[] stats = performDexOptUpgrade(pkgSettings,
causeFirstBoot ? REASON_FIRST_BOOT : REASON_BOOT_AFTER_OTA,
false /* bootComplete */);
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index 5b42a0b..82fc912 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -588,7 +588,6 @@
private final int mDefParseFlags;
private final String[] mSeparateProcesses;
private final boolean mIsUpgrade;
- private final boolean mIsPreNUpgrade;
private final boolean mIsPreNMR1Upgrade;
private final boolean mIsPreQUpgrade;
@@ -1734,7 +1733,6 @@
mInstantAppResolverConnection = testParams.instantAppResolverConnection;
mInstantAppResolverSettingsComponent = testParams.instantAppResolverSettingsComponent;
mIsPreNMR1Upgrade = testParams.isPreNmr1Upgrade;
- mIsPreNUpgrade = testParams.isPreNupgrade;
mIsPreQUpgrade = testParams.isPreQupgrade;
mIsUpgrade = testParams.isUpgrade;
mMetrics = testParams.Metrics;
@@ -2069,10 +2067,6 @@
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;
-
mIsPreNMR1Upgrade = mIsUpgrade && ver.sdkVersion < Build.VERSION_CODES.N_MR1;
mIsPreQUpgrade = mIsUpgrade && ver.sdkVersion < Build.VERSION_CODES.Q;
@@ -2954,13 +2948,12 @@
}
if (doTrim) {
if (!isFirstBoot()) {
- if (mDexOptHelper.isDexOptDialogShown()) {
- try {
- ActivityManager.getService().showBootMessage(
- mContext.getResources().getString(
- R.string.android_upgrading_fstrim), true);
- } catch (RemoteException e) {
- }
+ try {
+ ActivityManager.getService().showBootMessage(
+ mContext.getResources().getString(
+ R.string.android_upgrading_fstrim),
+ true);
+ } catch (RemoteException e) {
}
}
sm.runMaintenance();
@@ -7495,10 +7488,6 @@
return mPlatformPackage;
}
- boolean isPreNUpgrade() {
- return mIsPreNUpgrade;
- }
-
boolean isPreNMR1Upgrade() {
return mIsPreNMR1Upgrade;
}
diff --git a/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java b/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java
index 08ff51d..e5cfa67 100644
--- a/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java
+++ b/services/core/java/com/android/server/pm/PackageManagerServiceTestParams.java
@@ -63,7 +63,6 @@
public InstantAppResolverConnection instantAppResolverConnection;
public ComponentName instantAppResolverSettingsComponent;
public boolean isPreNmr1Upgrade;
- public boolean isPreNupgrade;
public boolean isPreQupgrade;
public boolean isUpgrade;
public LegacyPermissionManagerInternal legacyPermissionManagerInternal;