Merge "Prevent user stop of protected apps" into tm-dev am: 564965fc82

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

Change-Id: Id5faa0df1562b86f241af4ec492c4a51209826a3
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
TreeHugger Robot
2022-05-18 20:54:37 +00:00
committed by Automerger Merge Worker
2 changed files with 11 additions and 0 deletions

View File

@@ -4409,6 +4409,14 @@ public class ActivityManagerService extends IActivityManager.Stub
+ " but does not exist in that user");
return;
}
// Policy: certain classes of app are not subject to user-invoked stop
if (getPackageManagerInternal().isPackageStateProtected(packageName, userId)) {
Slog.w(TAG, "Asked to stop " + packageName + "/u" + userId
+ " but it is protected");
return;
}
Slog.i(TAG, "Stopping app for user: " + packageName + "/" + userId);
// A specific subset of the work done in forceStopPackageLocked(), because we are

View File

@@ -3561,6 +3561,9 @@ final class ActivityManagerShellCommand extends ShellCommand {
pw.println(" Enable/disable rate limit on FGS notification deferral policy.");
pw.println(" force-stop [--user <USER_ID> | all | current] <PACKAGE>");
pw.println(" Completely stop the given application package.");
pw.println(" stop-app [--user <USER_ID> | all | current] <PACKAGE>");
pw.println(" Stop an app and all of its services. Unlike `force-stop` this does");
pw.println(" not cancel the app's scheduled alarms and jobs.");
pw.println(" crash [--user <USER_ID>] <PACKAGE|PID>");
pw.println(" Induce a VM crash in the specified package or process");
pw.println(" kill [--user <USER_ID> | all | current] <PACKAGE>");