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

This commit is contained in:
Sanjana Sunil
2022-09-22 22:30:26 +00:00
committed by Android (Google) Code Review
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);
}
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) {
@@ -322,9 +322,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);
}
if (mCacheReady) { // use cache
if (!shouldFilterApplicationUsingCache(callingUid,

View File

@@ -65,16 +65,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);
}
}