From 10aa9fd06f491c3d3dbeabfd5040b08cf9f0767c Mon Sep 17 00:00:00 2001 From: Martijn Coenen Date: Thu, 3 Feb 2022 15:49:40 +0100 Subject: Make isCallerSameApp() correct for supplemental processes. UIDs from the new supplemental process range must always map back to the supplemental package. Bug: 215012578 Test: atest SupplementalProcessTests, TEST_MAPPING Change-Id: I867d163de74dd83a39936c6304a58888b921e992 --- services/core/java/com/android/server/pm/ComputerEngine.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java index c942a4357900..2011528eabca 100644 --- a/services/core/java/com/android/server/pm/ComputerEngine.java +++ b/services/core/java/com/android/server/pm/ComputerEngine.java @@ -2369,6 +2369,10 @@ public class ComputerEngine implements Computer { } public final boolean isCallerSameApp(String packageName, int uid) { + if (Process.isSupplemental(uid)) { + return (packageName != null + && packageName.equals(mService.getSupplementalProcessPackageName())); + } AndroidPackage pkg = mPackages.get(packageName); return pkg != null && UserHandle.getAppId(uid) == pkg.getUid(); -- cgit v1.2.3-59-g8ed1b