From a1131b1763efa56fe4fcaddf712a984a7d2d47da Mon Sep 17 00:00:00 2001 From: Martin Stjernholm Date: Mon, 16 Jan 2023 14:38:23 +0000 Subject: [PATCH] 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 --- .../com/android/server/pm/DexOptHelper.java | 35 ++----------------- .../server/pm/PackageManagerService.java | 23 ++++-------- .../pm/PackageManagerServiceTestParams.java | 1 - 3 files changed, 9 insertions(+), 50 deletions(-) diff --git a/services/core/java/com/android/server/pm/DexOptHelper.java b/services/core/java/com/android/server/pm/DexOptHelper.java index 1ee0b837c0062..adb50848ba90a 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.Manifest; 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.ArraySet; 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 @@ public final class DexOptHelper { 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 @@ public final class DexOptHelper { * which are (in order) {@code numberOfPackagesOptimized}, {@code numberOfPackagesSkipped} * and {@code numberOfPackagesFailed}. */ - public int[] performDexOptUpgrade(List packageStates, boolean showDialog, + public int[] performDexOptUpgrade(List packageStates, final int compilationReason, boolean bootComplete) throws LegacyDexoptDisabledException { Installer.checkLegacyDexoptDisabled(); @@ -220,18 +205,6 @@ public final class DexOptHelper { + 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 @@ public final class DexOptHelper { 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 @@ public final class DexOptHelper { 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 5b42a0be6b58e..82fc91261487b 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 @@ public class PackageManagerService implements PackageSender, TestUtilityService 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 @@ public class PackageManagerService implements PackageSender, TestUtilityService 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 @@ public class PackageManagerService implements PackageSender, TestUtilityService 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 @@ public class PackageManagerService implements PackageSender, TestUtilityService } 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 @@ public class PackageManagerService implements PackageSender, TestUtilityService 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 08ff51d0f1abe..e5cfa671a930d 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 final class PackageManagerServiceTestParams { public InstantAppResolverConnection instantAppResolverConnection; public ComponentName instantAppResolverSettingsComponent; public boolean isPreNmr1Upgrade; - public boolean isPreNupgrade; public boolean isPreQupgrade; public boolean isUpgrade; public LegacyPermissionManagerInternal legacyPermissionManagerInternal;