diff options
| author | 2022-09-23 07:39:01 +0000 | |
|---|---|---|
| committer | 2022-09-23 07:39:01 +0000 | |
| commit | efb6b0e65c62616d09d7fe884e938f1fe06b57ef (patch) | |
| tree | 9e602f364780f2907418ffe450d1176768e148cd | |
| parent | 45d0a352bf0ba3c04f854acca7da8718c3b08486 (diff) | |
| parent | 0e69c416c273aeed8832f82181c995731c1a34a1 (diff) | |
Merge "Use uid to query list of implicitly queryable packages" into tm-qpr-dev am: 9c0d01990e am: 0e69c416c2
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20007184
Change-Id: I2a35a4136c12813d4e2e29929055740e8080b780
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/pm/AppsFilterBase.java | 12 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/AppsFilterLocked.java | 8 |
2 files changed, 11 insertions, 9 deletions
diff --git a/services/core/java/com/android/server/pm/AppsFilterBase.java b/services/core/java/com/android/server/pm/AppsFilterBase.java index 5fa5de75eaf3..3b676c65db75 100644 --- a/services/core/java/com/android/server/pm/AppsFilterBase.java +++ b/services/core/java/com/android/server/pm/AppsFilterBase.java @@ -216,12 +216,12 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot { return mQueriesViaComponent.contains(callingAppId, targetAppId); } - protected boolean isImplicitlyQueryable(int callingAppId, int targetAppId) { - return mImplicitlyQueryable.contains(callingAppId, targetAppId); + protected boolean isImplicitlyQueryable(int callingUid, int targetUid) { + return mImplicitlyQueryable.contains(callingUid, targetUid); } - protected boolean isRetainedImplicitlyQueryable(int callingAppId, int targetAppId) { - return mRetainedImplicitlyQueryable.contains(callingAppId, targetAppId); + protected boolean isRetainedImplicitlyQueryable(int callingUid, int targetUid) { + return mRetainedImplicitlyQueryable.contains(callingUid, targetUid); } protected boolean isQueryableViaUsesLibrary(int callingAppId, int targetAppId) { @@ -337,9 +337,11 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot { || callingAppId == targetPkgSetting.getAppId()) { return false; } else if (Process.isSdkSandboxUid(callingAppId)) { + final int targetAppId = targetPkgSetting.getAppId(); + final int targetUid = UserHandle.getUid(userId, targetAppId); // we only allow sdk sandbox processes access to forcequeryable packages return !isForceQueryable(targetPkgSetting.getAppId()) - && !isImplicitlyQueryable(callingAppId, targetPkgSetting.getAppId()); + && !isImplicitlyQueryable(callingUid, targetUid); } // use cache if (mCacheReady && mCacheEnabled) { diff --git a/services/core/java/com/android/server/pm/AppsFilterLocked.java b/services/core/java/com/android/server/pm/AppsFilterLocked.java index 870f9da26210..29bb14e371c0 100644 --- a/services/core/java/com/android/server/pm/AppsFilterLocked.java +++ b/services/core/java/com/android/server/pm/AppsFilterLocked.java @@ -66,16 +66,16 @@ abstract class AppsFilterLocked extends AppsFilterBase { } @Override - protected boolean isImplicitlyQueryable(int callingAppId, int targetAppId) { + protected boolean isImplicitlyQueryable(int callingUid, int targetUid) { synchronized (mImplicitlyQueryableLock) { - return super.isImplicitlyQueryable(callingAppId, targetAppId); + return super.isImplicitlyQueryable(callingUid, targetUid); } } @Override - protected boolean isRetainedImplicitlyQueryable(int callingAppId, int targetAppId) { + protected boolean isRetainedImplicitlyQueryable(int callingUid, int targetUid) { synchronized (mImplicitlyQueryableLock) { - return super.isRetainedImplicitlyQueryable(callingAppId, targetAppId); + return super.isRetainedImplicitlyQueryable(callingUid, targetUid); } } |