From 2332d49347d252978ceea2dcde5adb6d9b08a24b Mon Sep 17 00:00:00 2001 From: Cintia Martins Date: Tue, 25 Oct 2022 19:03:48 +0000 Subject: [PATCH] =?UTF-8?q?Fixed=20Attribution=20Source=E2=80=99s=20callin?= =?UTF-8?q?g=20Uid=20check=20for=20multiuser.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The method UserHandle.getAppId() strips off the part of the Uid that is related to the current user (which may not be zero for multiuser). Bug: 236100828 Change-Id: Ie27c8570ba2551b6d99d9848a0b2469fe76ac3d1 --- core/java/android/content/AttributionSource.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/java/android/content/AttributionSource.java b/core/java/android/content/AttributionSource.java index b0c6cbced4f9f..e981581c269ad 100644 --- a/core/java/android/content/AttributionSource.java +++ b/core/java/android/content/AttributionSource.java @@ -29,6 +29,7 @@ import android.os.IBinder; import android.os.Parcel; import android.os.Parcelable; import android.os.Process; +import android.os.UserHandle; import android.permission.PermissionManager; import android.util.ArraySet; @@ -297,7 +298,7 @@ public final class AttributionSource implements Parcelable { public boolean checkCallingUid() { final int callingUid = Binder.getCallingUid(); if (callingUid != Process.ROOT_UID - && callingUid != Process.SYSTEM_UID + && UserHandle.getAppId(callingUid) != Process.SYSTEM_UID && callingUid != mAttributionSourceState.uid) { return false; }