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

Commit fb2dde8e authored by Songchun Fan's avatar Songchun Fan Committed by Automerger Merge Worker
Browse files

Merge "[pm] do not call prepareAppDataAfterInstallLIF from inside mLock" into tm-dev am: f6169105

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/17007149

Change-Id: I6354ee82303baaf84d75a2d85d872697f9b7a204
parents 956c7e00 f6169105
Loading
Loading
Loading
Loading
+25 −25
Original line number Diff line number Diff line
@@ -2995,7 +2995,6 @@ final class InstallPackageHelper {
     * APK will be installed and the package will be disabled. To recover from this situation,
     * the user will need to go into system settings and re-enable the package.
     */
    @GuardedBy({"mPm.mLock", "mPm.mInstallLock"})
    boolean enableCompressedPackage(AndroidPackage stubPkg,
            @NonNull PackageSetting stubPkgSetting) {
        final int parseFlags = mPm.getDefParseFlags() | ParsingPackageUtils.PARSE_CHATTY
@@ -3005,8 +3004,8 @@ final class InstallPackageHelper {
            try (PackageFreezer freezer =
                         mPm.freezePackage(stubPkg.getPackageName(), "setEnabledSetting")) {
                pkg = installStubPackageLI(stubPkg, parseFlags, 0 /*scanFlags*/);
                synchronized (mPm.mLock) {
                mAppDataHelper.prepareAppDataAfterInstallLIF(pkg);
                synchronized (mPm.mLock) {
                    try {
                        mSharedLibraries.updateSharedLibrariesLPw(
                                pkg, stubPkgSetting, null, null,
@@ -3063,7 +3062,7 @@ final class InstallPackageHelper {
        return true;
    }

    @GuardedBy({"mPm.mLock", "mPm.mInstallLock"})
    @GuardedBy("mPm.mInstallLock")
    private AndroidPackage installStubPackageLI(AndroidPackage stubPkg,
            @ParsingPackageUtils.ParseFlags int parseFlags,
            @PackageManagerService.ScanFlags int scanFlags)
@@ -3156,7 +3155,7 @@ final class InstallPackageHelper {
            mPm.mSettings.enableSystemPackageLPw(disabledPs.getPkg().getPackageName());
            // Remove any native libraries from the upgraded package.
            PackageManagerServiceUtils.removeNativeBinariesLI(deletedPs);

        }
        // Install the system package
        if (DEBUG_REMOVE) Slog.d(TAG, "Re-installing system package: " + disabledPs);
        try {
@@ -3177,6 +3176,7 @@ final class InstallPackageHelper {
                // We've re-installed the stub; make sure it's disabled here. If package was
                // originally enabled, we'll install the compressed version of the application
                // and re-enable it afterward.
                synchronized (mPm.mLock) {
                    disableStubPackage(action, deletedPs, allUserHandles);
                }
            }
@@ -3204,7 +3204,7 @@ final class InstallPackageHelper {
    /**
     * Installs a package that's already on the system partition.
     */
    @GuardedBy({"mPm.mLock", "mPm.mInstallLock"})
    @GuardedBy("mPm.mInstallLock")
    private void installPackageFromSystemLIF(@NonNull String codePathString,
            @NonNull int[] allUserHandles, @Nullable int[] origUserHandles,
            boolean writeSettings, int previousAppId)