summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Alex Buynytskyy <alexbuy@google.com> 2023-12-08 16:22:25 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-12-08 16:22:25 +0000
commit4066bfd81ed3af89ead0e04a07fb38b40fa891f9 (patch)
tree84c630c405ddbe098856eb77332944ebd939ec95
parent45c41da4a361231d86f26f9f111eca952c318bb9 (diff)
parente7b28a5d1de605938deb8bf71626631fcf663665 (diff)
Merge "Allow visibility to one more activity-related API." into main
-rw-r--r--services/core/java/com/android/server/pm/ComputerEngine.java3
-rw-r--r--services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java7
2 files changed, 8 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/pm/ComputerEngine.java b/services/core/java/com/android/server/pm/ComputerEngine.java
index df7ceda3b2f9..2ae10051182d 100644
--- a/services/core/java/com/android/server/pm/ComputerEngine.java
+++ b/services/core/java/com/android/server/pm/ComputerEngine.java
@@ -895,6 +895,9 @@ public class ComputerEngine implements Computer {
@PackageManager.ResolveInfoFlagsBits long flags, int filterCallingUid, int userId) {
ParsedActivity a = mComponentResolver.getActivity(component);
+ // Allow to match activities of quarantined packages.
+ flags |= PackageManager.MATCH_QUARANTINED_COMPONENTS;
+
if (DEBUG_PACKAGE_INFO) Log.v(TAG, "getActivityInfo " + component + ": " + a);
AndroidPackage pkg = a == null ? null : mPackages.get(a.getPackageName());
diff --git a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
index d64201893400..b23dbee5e973 100644
--- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
+++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
@@ -266,17 +266,20 @@ public class PackageInfoUtils {
if ((flags & PackageManager.GET_ACTIVITIES) != 0) {
final int N = pkg.getActivities().size();
if (N > 0) {
+ // Allow to match activities of quarantined packages.
+ long aflags = flags | PackageManager.MATCH_QUARANTINED_COMPONENTS;
+
int num = 0;
final ActivityInfo[] res = new ActivityInfo[N];
for (int i = 0; i < N; i++) {
final ParsedActivity a = pkg.getActivities().get(i);
if (ComponentParseUtils.isMatch(state, pkgSetting.isSystem(), pkg.isEnabled(), a,
- flags)) {
+ aflags)) {
if (PackageManager.APP_DETAILS_ACTIVITY_CLASS_NAME.equals(
a.getName())) {
continue;
}
- res[num++] = generateActivityInfo(pkg, a, flags, state,
+ res[num++] = generateActivityInfo(pkg, a, aflags, state,
applicationInfo, userId, pkgSetting);
}
}