Merge "Use uid to query list of implicitly queryable packages" into tm-qpr-dev am: 9c0d01990e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20007184

Change-Id: I418aaee1880d65cd5b92ec9cbc9f2bffa1f35652
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Sanjana Sunil
2022-09-22 22:36:36 +00:00
committed by Automerger Merge Worker
2 changed files with 11 additions and 9 deletions

View File

@@ -205,12 +205,12 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot {
return mQueriesViaComponent.contains(callingAppId, targetAppId); return mQueriesViaComponent.contains(callingAppId, targetAppId);
} }
protected boolean isImplicitlyQueryable(int callingAppId, int targetAppId) { protected boolean isImplicitlyQueryable(int callingUid, int targetUid) {
return mImplicitlyQueryable.contains(callingAppId, targetAppId); return mImplicitlyQueryable.contains(callingUid, targetUid);
} }
protected boolean isRetainedImplicitlyQueryable(int callingAppId, int targetAppId) { protected boolean isRetainedImplicitlyQueryable(int callingUid, int targetUid) {
return mRetainedImplicitlyQueryable.contains(callingAppId, targetAppId); return mRetainedImplicitlyQueryable.contains(callingUid, targetUid);
} }
protected boolean isQueryableViaUsesLibrary(int callingAppId, int targetAppId) { protected boolean isQueryableViaUsesLibrary(int callingAppId, int targetAppId) {
@@ -322,9 +322,11 @@ public abstract class AppsFilterBase implements AppsFilterSnapshot {
|| callingAppId == targetPkgSetting.getAppId()) { || callingAppId == targetPkgSetting.getAppId()) {
return false; return false;
} else if (Process.isSdkSandboxUid(callingAppId)) { } 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 // we only allow sdk sandbox processes access to forcequeryable packages
return !isForceQueryable(targetPkgSetting.getAppId()) return !isForceQueryable(targetPkgSetting.getAppId())
&& !isImplicitlyQueryable(callingAppId, targetPkgSetting.getAppId()); && !isImplicitlyQueryable(callingUid, targetUid);
} }
if (mCacheReady) { // use cache if (mCacheReady) { // use cache
if (!shouldFilterApplicationUsingCache(callingUid, if (!shouldFilterApplicationUsingCache(callingUid,

View File

@@ -65,16 +65,16 @@ abstract class AppsFilterLocked extends AppsFilterBase {
} }
@Override @Override
protected boolean isImplicitlyQueryable(int callingAppId, int targetAppId) { protected boolean isImplicitlyQueryable(int callingUid, int targetUid) {
synchronized (mImplicitlyQueryableLock) { synchronized (mImplicitlyQueryableLock) {
return super.isImplicitlyQueryable(callingAppId, targetAppId); return super.isImplicitlyQueryable(callingUid, targetUid);
} }
} }
@Override @Override
protected boolean isRetainedImplicitlyQueryable(int callingAppId, int targetAppId) { protected boolean isRetainedImplicitlyQueryable(int callingUid, int targetUid) {
synchronized (mImplicitlyQueryableLock) { synchronized (mImplicitlyQueryableLock) {
return super.isRetainedImplicitlyQueryable(callingAppId, targetAppId); return super.isRetainedImplicitlyQueryable(callingUid, targetUid);
} }
} }