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

Commit 0a0bfcf7 authored by Sudheer Shanka's avatar Sudheer Shanka
Browse files

Force quarantined apps into the package stopped state.

Bug: 297916859
Test: manual
Change-Id: I74ae2d28d77c429271d4fc2623b1deb135410a26
parent fcdaec4f
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -3815,15 +3815,16 @@ public class ActivityManagerService extends IActivityManager.Stub
    @Override
    public void forceStopPackage(final String packageName, int userId) {
        forceStopPackage(packageName, userId, /*flags=*/ 0);
        forceStopPackage(packageName, userId, /*flags=*/ 0, null);
    }
    @Override
    public void forceStopPackageEvenWhenStopping(final String packageName, int userId) {
        forceStopPackage(packageName, userId, ActivityManager.FLAG_OR_STOPPED);
        forceStopPackage(packageName, userId, ActivityManager.FLAG_OR_STOPPED, null);
    }
    private void forceStopPackage(final String packageName, int userId, int userRunningFlags) {
    private void forceStopPackage(final String packageName, int userId, int userRunningFlags,
            String reason) {
        if (checkCallingPermission(android.Manifest.permission.FORCE_STOP_PACKAGES)
                != PackageManager.PERMISSION_GRANTED) {
            String msg = "Permission Denial: forceStopPackage() from pid="
@@ -3868,7 +3869,8 @@ public class ActivityManagerService extends IActivityManager.Stub
                                + packageName + ": " + e);
                    }
                    if (mUserController.isUserRunning(user, userRunningFlags)) {
                        forceStopPackageLocked(packageName, pkgUid, "from pid " + callingPid);
                        forceStopPackageLocked(packageName, pkgUid,
                                reason == null ? ("from pid " + callingPid) : reason);
                        finishForceStopPackageLocked(packageName, pkgUid);
                    }
                }
@@ -14856,8 +14858,8 @@ public class ActivityManagerService extends IActivityManager.Stub
                                    Intent.EXTRA_QUARANTINED, false);
                            if (suspended && quarantined && packageNames != null) {
                                for (int i = 0; i < packageNames.length; i++) {
                                    forceStopPackageLocked(packageNames[i], -1, false, true, true,
                                            false, false, userId, "suspended");
                                    forceStopPackage(packageNames[i], userId,
                                            ActivityManager.FLAG_OR_STOPPED, "quarantined");
                                }
                            }