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

Commit 53f9d3b1 authored by Rhed Jao's avatar Rhed Jao Committed by Android (Google) Code Review
Browse files

Merge "Do not kill apps dependending on static shared lib"

parents 483f47f6 1b347753
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -649,14 +649,19 @@ final class InstallPackageHelper {
            mPm.checkPackageFrozen(pkgName);
        }

        // Also need to kill any apps that are dependent on the library.
        final boolean isReplace =
                reconciledPkg.mPrepareResult != null && reconciledPkg.mPrepareResult.mReplace;
        // Also need to kill any apps that are dependent on the library, except the case of
        // installation of new version static shared library.
        if (clientLibPkgs != null) {
            if (pkg.getStaticSharedLibName() == null || isReplace) {
                for (int i = 0; i < clientLibPkgs.size(); i++) {
                    AndroidPackage clientPkg = clientLibPkgs.get(i);
                    mPm.killApplication(clientPkg.getPackageName(),
                            clientPkg.getUid(), "update lib");
                }
            }
        }

        // writer
        Trace.traceBegin(TRACE_TAG_PACKAGE_MANAGER, "updateSettings");
@@ -676,8 +681,6 @@ final class InstallPackageHelper {
            ksms.addScannedPackageLPw(pkg);

            mPm.mComponentResolver.addAllComponents(pkg, chatty);
            final boolean isReplace =
                    reconciledPkg.mPrepareResult != null && reconciledPkg.mPrepareResult.mReplace;
            mPm.mAppsFilter.addPackage(pkgSetting, isReplace);
            mPm.addAllPackageProperties(pkg);

@@ -3129,10 +3132,12 @@ final class InstallPackageHelper {
                            true, true, pkgList, uidArray, null);
                }
            } else if (!ArrayUtils.isEmpty(res.mLibraryConsumers)) { // if static shared lib
                // No need to kill consumers if it's installation of new version static shared lib.
                final boolean dontKillApp = !update && res.mPkg.getStaticSharedLibName() != null;
                for (int i = 0; i < res.mLibraryConsumers.size(); i++) {
                    AndroidPackage pkg = res.mLibraryConsumers.get(i);
                    // send broadcast that all consumers of the static shared library have changed
                    mPm.sendPackageChangedBroadcast(pkg.getPackageName(), false /* dontKillApp */,
                    mPm.sendPackageChangedBroadcast(pkg.getPackageName(), dontKillApp,
                            new ArrayList<>(Collections.singletonList(pkg.getPackageName())),
                            pkg.getUid(), null);
                }