From f5c444ffd4fdce4fab939fcd88f163288dc804c5 Mon Sep 17 00:00:00 2001 From: David Brazdil Date: Wed, 30 Mar 2016 11:45:52 +0100 Subject: [PATCH] Move OTA package update before fstrim, hide "Optimizing apps" dialog This patch moves the updating of packages before performing fstrim, which runs asynchronously anyway, and stops showing the UI dialog. Bug: 27350503 Change-Id: I6fceda10d7696f9badb97978fb9dc7927d698a4b --- core/java/android/content/pm/IPackageManager.aidl | 5 ++--- .../java/com/android/server/pm/PackageManagerService.java | 13 ++----------- services/java/com/android/server/SystemServer.java | 12 ++++++------ 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/core/java/android/content/pm/IPackageManager.aidl b/core/java/android/content/pm/IPackageManager.aidl index a0238fb07e5e..6fce36be43ab 100644 --- a/core/java/android/content/pm/IPackageManager.aidl +++ b/core/java/android/content/pm/IPackageManager.aidl @@ -437,10 +437,9 @@ interface IPackageManager { void performFstrimIfNeeded(); /** - * Ask the package manager to extract packages if needed, to save - * the VM unzipping the APK in memory during launch. + * Ask the package manager to update packages if needed. */ - void extractPackagesIfNeeded(); + void updatePackagesIfNeeded(); /** * Notify the package manager that a package is going to be used. diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 442643a976e2..35cb946e92a1 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -6926,8 +6926,8 @@ public class PackageManagerService extends IPackageManager.Stub { } @Override - public void extractPackagesIfNeeded() { - enforceSystemOrRoot("Only the system can request package extraction"); + public void updatePackagesIfNeeded() { + enforceSystemOrRoot("Only the system can request package update"); // We need to re-extract after an OTA. boolean causeUpgrade = isUpgrade(); @@ -6958,15 +6958,6 @@ public class PackageManagerService extends IPackageManager.Stub { Log.i(TAG, "Extracting app " + curr + " of " + total + ": " + pkg.packageName); } - if (!isFirstBoot()) { - try { - ActivityManagerNative.getDefault().showBootMessage( - mContext.getResources().getString(R.string.android_upgrading_apk, - curr, total), true); - } catch (RemoteException e) { - } - } - if (PackageDexOptimizer.canOptimizePackage(pkg)) { // If the cache was pruned, any compiled odex files will likely be out of date // and would have to be patched (would be SELF_PATCHOAT, which is deprecated). diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 0a4effb26249..7b44f98e6d1a 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -697,19 +697,19 @@ public final class SystemServer { // as appropriate. mSystemServiceManager.startService(UiModeManagerService.class); - Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "PerformFstrimIfNeeded"); + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "UpdatePackagesIfNeeded"); try { - mPackageManagerService.performFstrimIfNeeded(); + mPackageManagerService.updatePackagesIfNeeded(); } catch (Throwable e) { - reportWtf("performing fstrim", e); + reportWtf("update packages", e); } Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); - Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "ExtractPackagesIfNeeded"); + Trace.traceBegin(Trace.TRACE_TAG_SYSTEM_SERVER, "PerformFstrimIfNeeded"); try { - mPackageManagerService.extractPackagesIfNeeded(); + mPackageManagerService.performFstrimIfNeeded(); } catch (Throwable e) { - reportWtf("extract packages", e); + reportWtf("performing fstrim", e); } Trace.traceEnd(Trace.TRACE_TAG_SYSTEM_SERVER); -- 2.11.0