Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0313a00e authored by Jackal Guo's avatar Jackal Guo
Browse files

metaData should be null without GET_META_DATA flag

Additional meta-data associated with the component should only be
filled in if caller sets the GET_META_DATA flag when requesting
the info.

Bug: 171545647
Test: atest PackageManagerTest
Change-Id: I3c4f000043a7db667192ca4379390df5548f8ab0
parent 72ee0c21
Loading
Loading
Loading
Loading
+13 −5
Original line number Diff line number Diff line
@@ -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();
        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;
    }
+4 −4
Original line number Diff line number Diff line
@@ -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;
    }