Loading core/java/android/content/pm/PackageParser.java +35 −0 Original line number Diff line number Diff line Loading @@ -4675,6 +4675,28 @@ public class PackageParser { return ai; } public static ApplicationInfo generateApplicationInfo(ApplicationInfo ai, int flags, PackageUserState state, int userId) { if (ai == null) return null; if (!checkUseInstalledOrHidden(flags, state)) { return null; } // This is only used to return the ResolverActivity; we will just always // make a copy. ai = new ApplicationInfo(ai); if (userId != 0) { ai.uid = UserHandle.getUid(userId, ai.uid); ai.dataDir = PackageManager.getDataDirForUser(userId, ai.packageName); } if (state.stopped) { ai.flags |= ApplicationInfo.FLAG_STOPPED; } else { ai.flags &= ~ApplicationInfo.FLAG_STOPPED; } updateApplicationInfo(ai, flags, state); return ai; } public static final PermissionInfo generatePermissionInfo( Permission p, int flags) { if (p == null) return null; Loading Loading @@ -4738,6 +4760,19 @@ public class PackageParser { return ai; } public static final ActivityInfo generateActivityInfo(ActivityInfo ai, int flags, PackageUserState state, int userId) { if (ai == null) return null; if (!checkUseInstalledOrHidden(flags, state)) { return null; } // This is only used to return the ResolverActivity; we will just always // make a copy. ai = new ActivityInfo(ai); ai.applicationInfo = generateApplicationInfo(ai.applicationInfo, flags, state, userId); return ai; } public final static class Service extends Component<ServiceIntentInfo> { public final ServiceInfo info; Loading services/core/java/com/android/server/pm/PackageManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -2161,7 +2161,8 @@ public class PackageManagerService extends IPackageManager.Stub { userId); } if (mResolveComponentName.equals(component)) { return mResolveActivity; return PackageParser.generateActivityInfo(mResolveActivity, flags, new PackageUserState(), userId); } } return null; Loading Loading
core/java/android/content/pm/PackageParser.java +35 −0 Original line number Diff line number Diff line Loading @@ -4675,6 +4675,28 @@ public class PackageParser { return ai; } public static ApplicationInfo generateApplicationInfo(ApplicationInfo ai, int flags, PackageUserState state, int userId) { if (ai == null) return null; if (!checkUseInstalledOrHidden(flags, state)) { return null; } // This is only used to return the ResolverActivity; we will just always // make a copy. ai = new ApplicationInfo(ai); if (userId != 0) { ai.uid = UserHandle.getUid(userId, ai.uid); ai.dataDir = PackageManager.getDataDirForUser(userId, ai.packageName); } if (state.stopped) { ai.flags |= ApplicationInfo.FLAG_STOPPED; } else { ai.flags &= ~ApplicationInfo.FLAG_STOPPED; } updateApplicationInfo(ai, flags, state); return ai; } public static final PermissionInfo generatePermissionInfo( Permission p, int flags) { if (p == null) return null; Loading Loading @@ -4738,6 +4760,19 @@ public class PackageParser { return ai; } public static final ActivityInfo generateActivityInfo(ActivityInfo ai, int flags, PackageUserState state, int userId) { if (ai == null) return null; if (!checkUseInstalledOrHidden(flags, state)) { return null; } // This is only used to return the ResolverActivity; we will just always // make a copy. ai = new ActivityInfo(ai); ai.applicationInfo = generateApplicationInfo(ai.applicationInfo, flags, state, userId); return ai; } public final static class Service extends Component<ServiceIntentInfo> { public final ServiceInfo info; Loading
services/core/java/com/android/server/pm/PackageManagerService.java +2 −1 Original line number Diff line number Diff line Loading @@ -2161,7 +2161,8 @@ public class PackageManagerService extends IPackageManager.Stub { userId); } if (mResolveComponentName.equals(component)) { return mResolveActivity; return PackageParser.generateActivityInfo(mResolveActivity, flags, new PackageUserState(), userId); } } return null; Loading