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

Commit 355a8118 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Merge "Skip post install if package was deleted" into rvc-dev am:...

Merge "Merge "Skip post install if package was deleted" into rvc-dev am: 9f9ffca0 am: b6126d7e" into rvc-d1-dev-plus-aosp am: 1b03149b

Change-Id: Iea6de4436ec62dddb839e793bb4f4491073e3767
parents ad49a64a 1b03149b
Loading
Loading
Loading
Loading
+16 −11
Original line number Diff line number Diff line
@@ -2072,8 +2072,18 @@ public class PackageManagerService extends IPackageManager.Stub
            int autoRevokePermissionsMode,
            boolean launchedForRestore, String installerPackage,
            IPackageInstallObserver2 installObserver, int dataLoaderType) {
        final boolean succeeded = res.returnCode == PackageManager.INSTALL_SUCCEEDED;
        boolean succeeded = res.returnCode == PackageManager.INSTALL_SUCCEEDED;
        final boolean update = res.removedInfo != null && res.removedInfo.removedPackage != null;
        final String packageName = res.name;
        final PackageSetting pkgSetting = succeeded ? getPackageSetting(packageName) : null;
        if (succeeded && pkgSetting == null) {
            Slog.e(TAG, packageName + " was removed before handlePackagePostInstall "
                    + "could be executed");
            res.returnCode = INSTALL_FAILED_PACKAGE_CHANGED;
            res.returnMsg = "Package was removed before install could complete.";
            notifyInstallObserver(res, installObserver);
            return;
        }
        if (succeeded) {
            // Send the removed broadcasts
@@ -2117,8 +2127,6 @@ public class PackageManagerService extends IPackageManager.Stub
                mInstantAppRegistry.onPackageInstalledLPw(res.pkg, res.newUsers);
            }
            final String packageName = res.pkg.getPackageName();
            // Determine the set of users who are adding this package for
            // the first time vs. those who are seeing an update.
            int[] firstUserIds = EMPTY_INT_ARRAY;
@@ -2126,7 +2134,7 @@ public class PackageManagerService extends IPackageManager.Stub
            int[] updateUserIds = EMPTY_INT_ARRAY;
            int[] instantUserIds = EMPTY_INT_ARRAY;
            final boolean allNewUsers = res.origUsers == null || res.origUsers.length == 0;
            final PackageSetting ps = getPackageSetting(res.pkg.getPackageName());
            final PackageSetting ps = pkgSetting;
            for (int newUser : res.newUsers) {
                final boolean isInstantApp = ps.getInstantApp(newUser);
                if (allNewUsers) {
@@ -2263,7 +2271,7 @@ public class PackageManagerService extends IPackageManager.Stub
                        if (packageExternalStorageType != StorageEnums.UNKNOWN) {
                            FrameworkStatsLog.write(
                                    FrameworkStatsLog.APP_INSTALL_ON_EXTERNAL_STORAGE_REPORTED,
                                    packageExternalStorageType, res.pkg.getPackageName());
                                    packageExternalStorageType, packageName);
                        }
                    }
                    if (DEBUG_INSTALL) {
@@ -2295,14 +2303,11 @@ public class PackageManagerService extends IPackageManager.Stub
                    if (packageIsBrowser(packageName, userId)) {
                        // If this browser is restored from user's backup, do not clear
                        // default-browser state for this user
                        synchronized (mLock) {
                            final PackageSetting pkgSetting = mSettings.mPackages.get(packageName);
                        if (pkgSetting.getInstallReason(userId)
                                != PackageManager.INSTALL_REASON_DEVICE_RESTORE) {
                            mPermissionManager.setDefaultBrowser(null, true, true, userId);
                        }
                    }
                    }
                    // We may also need to apply pending (restored) runtime permission grants
                    // within these users.