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

Commit f400227e authored by Dario Freni's avatar Dario Freni Committed by Android (Google) Code Review
Browse files

Merge "Enable upgrading persistent APKs on boot." into qt-dev

parents 9ff8ed82 ac3532f3
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -939,6 +939,7 @@ public class PackageManagerService extends IPackageManager.Stub
    ComponentName mCustomResolverComponentName;
    boolean mResolverReplaced = false;
    boolean mOkToReplacePersistentPackages = false;
    private final @Nullable ComponentName mIntentFilterVerifierComponent;
    private final @Nullable IntentFilterVerifier<ActivityIntentInfo> mIntentFilterVerifier;
@@ -17325,7 +17326,8 @@ public class PackageManagerService extends IPackageManager.Stub
                                        + " target SDK " + oldTargetSdk + " does.");
                    }
                    // Prevent persistent apps from being updated
                    if ((oldPackage.applicationInfo.flags & ApplicationInfo.FLAG_PERSISTENT) != 0) {
                    if (((oldPackage.applicationInfo.flags & ApplicationInfo.FLAG_PERSISTENT) != 0)
                            && !mOkToReplacePersistentPackages) {
                        throw new PrepareFailure(PackageManager.INSTALL_FAILED_INVALID_APK,
                                "Package " + oldPackage.packageName + " is a persistent app. "
                                        + "Persistent apps are not updateable.");
@@ -21505,10 +21507,12 @@ public class PackageManagerService extends IPackageManager.Stub
        mModuleInfoProvider.systemReady();
        mOkToReplacePersistentPackages = true;
        // Installer service might attempt to install some packages that have been staged for
        // installation on reboot. Make sure this is the last component to be call since the
        // installation might require other components to be ready.
        mInstallerService.restoreAndApplyStagedSessionIfNeeded();
        mOkToReplacePersistentPackages = false;
    }
    public void waitForAppDataPrepared() {