summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java18
-rw-r--r--services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java8
2 files changed, 17 insertions, 9 deletions
diff --git a/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java b/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java
index c5240c2814e8..ddf3d901c29a 100644
--- a/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java
+++ b/core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java
@@ -419,7 +419,7 @@ public class PackageInfoWithoutStateUtils {
return null;
}
- return generateActivityInfoUnchecked(a, applicationInfo);
+ return generateActivityInfoUnchecked(a, flags, applicationInfo);
}
/**
@@ -431,6 +431,7 @@ public class PackageInfoWithoutStateUtils {
*/
@NonNull
public static ActivityInfo generateActivityInfoUnchecked(@NonNull ParsedActivity a,
+ @PackageManager.ComponentInfoFlags int flags,
@NonNull ApplicationInfo applicationInfo) {
// Make shallow copies so we can store the metadata safely
ActivityInfo ai = new ActivityInfo();
@@ -463,7 +464,9 @@ public class PackageInfoWithoutStateUtils {
ai.rotationAnimation = a.getRotationAnimation();
ai.colorMode = a.getColorMode();
ai.windowLayout = a.getWindowLayout();
- ai.metaData = a.getMetaData();
+ if ((flags & PackageManager.GET_META_DATA) != 0) {
+ ai.metaData = a.getMetaData();
+ }
ai.applicationInfo = applicationInfo;
return ai;
}
@@ -489,7 +492,7 @@ public class PackageInfoWithoutStateUtils {
return null;
}
- return generateServiceInfoUnchecked(s, applicationInfo);
+ return generateServiceInfoUnchecked(s, flags, applicationInfo);
}
/**
@@ -501,17 +504,20 @@ public class PackageInfoWithoutStateUtils {
*/
@NonNull
public static ServiceInfo generateServiceInfoUnchecked(@NonNull ParsedService s,
+ @PackageManager.ComponentInfoFlags int flags,
@NonNull ApplicationInfo applicationInfo) {
// Make shallow copies so we can store the metadata safely
ServiceInfo si = new ServiceInfo();
assignSharedFieldsForComponentInfo(si, s);
si.exported = s.isExported();
si.flags = s.getFlags();
- si.metaData = s.getMetaData();
si.permission = s.getPermission();
si.processName = s.getProcessName();
si.mForegroundServiceType = s.getForegroundServiceType();
si.applicationInfo = applicationInfo;
+ if ((flags & PackageManager.GET_META_DATA) != 0) {
+ si.metaData = s.getMetaData();
+ }
return si;
}
@@ -566,10 +572,12 @@ public class PackageInfoWithoutStateUtils {
pi.initOrder = p.getInitOrder();
pi.uriPermissionPatterns = p.getUriPermissionPatterns();
pi.pathPermissions = p.getPathPermissions();
- pi.metaData = p.getMetaData();
if ((flags & PackageManager.GET_URI_PERMISSION_PATTERNS) == 0) {
pi.uriPermissionPatterns = null;
}
+ if ((flags & PackageManager.GET_META_DATA) != 0) {
+ pi.metaData = p.getMetaData();
+ }
pi.applicationInfo = applicationInfo;
return pi;
}
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 2d2e72a3facb..9dde7dfd5978 100644
--- a/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
+++ b/services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java
@@ -275,8 +275,8 @@ public class PackageInfoUtils {
return null;
}
- ActivityInfo info =
- PackageInfoWithoutStateUtils.generateActivityInfoUnchecked(a, applicationInfo);
+ final ActivityInfo info = PackageInfoWithoutStateUtils.generateActivityInfoUnchecked(
+ a, flags, applicationInfo);
assignSharedFieldsForComponentInfo(info, a, pkgSetting, userId);
return info;
}
@@ -310,8 +310,8 @@ public class PackageInfoUtils {
return null;
}
- ServiceInfo info =
- PackageInfoWithoutStateUtils.generateServiceInfoUnchecked(s, applicationInfo);
+ final ServiceInfo info = PackageInfoWithoutStateUtils.generateServiceInfoUnchecked(
+ s, flags, applicationInfo);
assignSharedFieldsForComponentInfo(info, s, pkgSetting, userId);
return info;
}