Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f5c444ff authored by David Brazdil's avatar David Brazdil
Browse files

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
parent 6b69b122
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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.
+2 −11
Original line number Diff line number Diff line
@@ -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).
+6 −6
Original line number Diff line number Diff line
@@ -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);