summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Martijn Coenen <maco@google.com> 2020-06-04 06:15:43 +0200
committer Martijn Coenen <maco@google.com> 2020-06-05 13:34:07 +0200
commit6bb801ebb3483775e86dbcc1bcc621754f36e4fe (patch)
tree7b5b29c1dfc534a8534e1ac4acfd651ab50d8408
parent38e3d616bc62fe5e0627f5b3878c824c4c174a16 (diff)
Use killUid() instead of killApplication().
killApplication() doesn't just kill the process, but also tears down its entire task stack, meaning it won't be restarted when that task becomes visible again. Use killUid() instead, which does have this property. Bug: 157674306 Test: manual verification Change-Id: I691d9fe96b64012c96e0595385bb482056b6c4d4
-rw-r--r--services/core/java/com/android/server/StorageManagerService.java12
1 files changed, 8 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java
index b5aec8e401eb..8eb401a7ee55 100644
--- a/services/core/java/com/android/server/StorageManagerService.java
+++ b/services/core/java/com/android/server/StorageManagerService.java
@@ -4657,9 +4657,8 @@ class StorageManagerService extends IStorageManager.Stub
private void killAppForOpChange(int code, int uid, String packageName) {
final IActivityManager am = ActivityManager.getService();
try {
- am.killApplication(packageName,
- UserHandle.getAppId(uid),
- UserHandle.USER_ALL, AppOpsManager.opToName(code) + " changed.");
+ am.killUid(UserHandle.getAppId(uid), UserHandle.USER_ALL,
+ AppOpsManager.opToName(code) + " changed.");
} catch (RemoteException e) {
}
}
@@ -4681,7 +4680,12 @@ class StorageManagerService extends IStorageManager.Stub
// results in a bad UX, especially since the gid only gives access
// to unreliable volumes, USB OTGs that are rarely mounted. The app
// will get the external_storage gid on next organic restart.
- killAppForOpChange(code, uid, packageName);
+ if (packageName != null) {
+ killAppForOpChange(code, uid, packageName);
+ } else {
+ // TODO(b/158283222) this can happen, figure out if we need
+ // to kill in this case as well.
+ }
}
return;
case OP_LEGACY_STORAGE: