diff options
| author | 2022-06-27 03:31:11 +0000 | |
|---|---|---|
| committer | 2022-06-27 03:31:11 +0000 | |
| commit | 85ff9c86a5f9beb6ecbff27a0463123acd0db8b6 (patch) | |
| tree | a8a3e952b584c4594f06c7af5e977dce9310b64f | |
| parent | d82ea4bd759a6cacbcc36765f35b8c9c5bcc6e4f (diff) | |
| parent | 593a8f87b8e70fc64ae74075925a263a7f1680cd (diff) | |
Merge "Passing correct package's user id into the filterAppAccess api"
| -rw-r--r-- | services/core/java/com/android/server/appop/AppOpsService.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/appop/AppOpsService.java b/services/core/java/com/android/server/appop/AppOpsService.java index 5c7af47682e4..d38cd8ef6181 100644 --- a/services/core/java/com/android/server/appop/AppOpsService.java +++ b/services/core/java/com/android/server/appop/AppOpsService.java @@ -3126,8 +3126,8 @@ public class AppOpsService extends IAppOpsService.Stub { if (callback == null) { return; } - final boolean mayWatchPackageName = - packageName != null && !filterAppAccessUnlocked(packageName); + final boolean mayWatchPackageName = packageName != null + && !filterAppAccessUnlocked(packageName, UserHandle.getUserId(callingUid)); synchronized (this) { int switchOp = (op != AppOpsManager.OP_NONE) ? AppOpsManager.opToSwitch(op) : op; @@ -3331,7 +3331,8 @@ public class AppOpsService extends IAppOpsService.Stub { // When the caller is the system, it's possible that the packageName is the special // one (e.g., "root") which isn't actually existed. if (resolveUid(packageName) == uid - || (isPackageExisted(packageName) && !filterAppAccessUnlocked(packageName))) { + || (isPackageExisted(packageName) + && !filterAppAccessUnlocked(packageName, UserHandle.getUserId(uid)))) { return AppOpsManager.MODE_ALLOWED; } return AppOpsManager.MODE_ERRORED; @@ -3350,10 +3351,10 @@ public class AppOpsService extends IAppOpsService.Stub { * * NOTE: This must not be called while synchronized on {@code this} to avoid dead locks */ - private boolean filterAppAccessUnlocked(String packageName) { + private boolean filterAppAccessUnlocked(String packageName, int userId) { final int callingUid = Binder.getCallingUid(); return LocalServices.getService(PackageManagerInternal.class) - .filterAppAccess(packageName, callingUid, UserHandle.getUserId(callingUid)); + .filterAppAccess(packageName, callingUid, userId); } @Override |