diff options
| -rw-r--r-- | core/java/android/content/pm/parsing/PackageInfoWithoutStateUtils.java | 18 | ||||
| -rw-r--r-- | services/core/java/com/android/server/pm/parsing/PackageInfoUtils.java | 8 |
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; } |