summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Martijn Coenen <maco@google.com> 2022-02-03 15:49:40 +0100
committer Martijn Coenen <maco@google.com> 2022-02-09 17:58:45 +0100
commit10aa9fd06f491c3d3dbeabfd5040b08cf9f0767c (patch)
tree1309d9e37589bafc2f1dd21dc5fc8fdd055f8a24
parent5fa64ead9079ec89e06ad87162422ec891b74ba6 (diff)
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
-rw-r--r--services/core/java/com/android/server/pm/ComputerEngine.java4
1 files changed, 4 insertions, 0 deletions
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();