summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java12
1 files changed, 9 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index b111b36276aa..cea54a6819e8 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -11045,9 +11045,15 @@ public final class ActivityManagerService extends ActivityManagerNative
public void killUid(int uid, String reason) {
enforceCallingPermission(Manifest.permission.KILL_UID, "killUid");
synchronized (this) {
- killPackageProcessesLocked(null, UserHandle.getAppId(uid), UserHandle.getUserId(uid),
- ProcessList.FOREGROUND_APP_ADJ-1, false, true, true, false,
- reason != null ? reason : "kill uid");
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ killPackageProcessesLocked(null, UserHandle.getAppId(uid),
+ UserHandle.getUserId(uid),
+ ProcessList.PERSISTENT_PROC_ADJ, false, true, true, true,
+ reason != null ? reason : "kill uid");
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
}