Merge "Fix ActivityCallerState's user id resolution" into main
diff --git a/services/core/java/com/android/server/wm/ActivityCallerState.java b/services/core/java/com/android/server/wm/ActivityCallerState.java
index fa0b176..a333a4d 100644
--- a/services/core/java/com/android/server/wm/ActivityCallerState.java
+++ b/services/core/java/com/android/server/wm/ActivityCallerState.java
@@ -119,7 +119,7 @@
if (!hasRead && !hasWrite) {
callerInfo.mInaccessibleContentUris.add(convertToGrantUri(contentUri,
- /* modeFlags */ 0));
+ /* modeFlags */ 0, callerUid));
}
}
}
@@ -164,7 +164,7 @@
private boolean addContentUriIfUidHasPermission(Uri contentUri, int uid, int modeFlags,
ArraySet<GrantUri> grantUris) {
- final GrantUri grantUri = convertToGrantUri(contentUri, modeFlags);
+ final GrantUri grantUri = convertToGrantUri(contentUri, modeFlags, uid);
if (mAtmService.mUgmInternal.checkUriPermission(grantUri, uid,
modeFlags, /* isFullAccessForContentUri */ true)) {
grantUris.add(grantUri);
@@ -173,9 +173,9 @@
return false;
}
- private static GrantUri convertToGrantUri(Uri contentUri, int modeFlags) {
+ private static GrantUri convertToGrantUri(Uri contentUri, int modeFlags, int uid) {
return new GrantUri(ContentProvider.getUserIdFromUri(contentUri,
- UserHandle.getCallingUserId()), ContentProvider.getUriWithoutUserId(contentUri),
+ UserHandle.getUserId(uid)), ContentProvider.getUriWithoutUserId(contentUri),
modeFlags);
}