Merge "Fix --user parameter when setting app op for shell with shell command." into sc-dev am: 58f468f186

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

Change-Id: I828151e3443cef60ddf9192708ab696d7738cc47
This commit is contained in:
TreeHugger Robot
2021-06-30 06:13:43 +00:00
committed by Automerger Merge Worker

View File

@@ -4523,10 +4523,15 @@ public class AppOpsService extends IAppOpsService.Stub {
int callingUid = Binder.getCallingUid();
// Allow any attribution tag for resolvable uids
int pkgUid = resolveUid(packageName);
if (pkgUid != Process.INVALID_UID) {
int pkgUid;
if (Objects.equals(packageName, "com.android.shell")) {
// Special case for the shell which is a package but should be able
// to bypass app attribution tag restrictions.
pkgUid = Process.SHELL_UID;
} else {
pkgUid = resolveUid(packageName);
}
if (pkgUid != Process.INVALID_UID) {
if (pkgUid != UserHandle.getAppId(uid)) {
String otherUidMessage = DEBUG ? " but it is really " + pkgUid : " but it is not";
throw new SecurityException("Specified package " + packageName + " under uid "
@@ -6993,7 +6998,6 @@ public class AppOpsService extends IAppOpsService.Stub {
return Process.ROOT_UID;
case "shell":
case "dumpstate":
case "com.android.shell":
return Process.SHELL_UID;
case "media":
return Process.MEDIA_UID;