Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 740634f4 authored by Nate Jiang's avatar Nate Jiang
Browse files

Allow system process register AttributionSource for app from other user

Bug: 226322308
Test: TH
Change-Id: I397b1384fc067b372d83f32554967a3d09633a9e
parent d79cb124
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -966,8 +966,14 @@ public class PermissionManagerService extends IPermissionManager.Stub {

            final PackageManagerInternal packageManagerInternal = LocalServices.getService(
                    PackageManagerInternal.class);
            if (packageManagerInternal.getPackageUid(source.getPackageName(), 0,
                    UserHandle.getUserId(callingUid)) != source.getUid()) {

            // TODO(b/234653108): Clean up this UID/package & cross-user check.
            // If calling from the system process, allow registering attribution for package from
            // any user
            int userId = UserHandle.getUserId((callingUid == Process.SYSTEM_UID ? source.getUid()
                    : callingUid));
            if (packageManagerInternal.getPackageUid(source.getPackageName(), 0, userId)
                    != source.getUid()) {
                throw new SecurityException("Cannot register attribution source for package:"
                        + source.getPackageName() + " from uid:" + callingUid);
            }