Loading services/core/java/com/android/server/pm/PackageManagerService.java +21 −16 Original line number Original line Diff line number Diff line Loading @@ -1414,18 +1414,18 @@ public class PackageManagerService extends IPackageManager.Stub { } } } } sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, firstUsers); packageName, extras, 0, null, null, firstUsers); final boolean update = res.removedInfo.removedPackage != null; final boolean update = res.removedInfo.removedPackage != null; if (update) { if (update) { extras.putBoolean(Intent.EXTRA_REPLACING, true); extras.putBoolean(Intent.EXTRA_REPLACING, true); } } sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, updateUsers); packageName, extras, 0, null, null, updateUsers); if (update) { if (update) { sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, packageName, extras, null, null, updateUsers); packageName, extras, 0, null, null, updateUsers); sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, null, null, packageName, null, updateUsers); null, null, 0, packageName, null, updateUsers); // treat asec-hosted packages like removable media on upgrade // treat asec-hosted packages like removable media on upgrade if (res.pkg.isForwardLocked() || isExternal(res.pkg)) { if (res.pkg.isForwardLocked() || isExternal(res.pkg)) { Loading Loading @@ -9370,8 +9370,8 @@ public class PackageManagerService extends IPackageManager.Stub { } } }; }; final void sendPackageBroadcast(final String action, final String pkg, final void sendPackageBroadcast(final String action, final String pkg, final Bundle extras, final Bundle extras, final String targetPkg, final IIntentReceiver finishedReceiver, final int flags, final String targetPkg, final IIntentReceiver finishedReceiver, final int[] userIds) { final int[] userIds) { mHandler.post(new Runnable() { mHandler.post(new Runnable() { @Override @Override Loading Loading @@ -9401,7 +9401,7 @@ public class PackageManagerService extends IPackageManager.Stub { intent.putExtra(Intent.EXTRA_UID, uid); intent.putExtra(Intent.EXTRA_UID, uid); } } intent.putExtra(Intent.EXTRA_USER_HANDLE, id); intent.putExtra(Intent.EXTRA_USER_HANDLE, id); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT | flags); if (DEBUG_BROADCASTS) { if (DEBUG_BROADCASTS) { RuntimeException here = new RuntimeException("here"); RuntimeException here = new RuntimeException("here"); here.fillInStackTrace(); here.fillInStackTrace(); Loading Loading @@ -9593,7 +9593,7 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putInt(Intent.EXTRA_UID, UserHandle.getUid(userId, pkgSetting.appId)); extras.putInt(Intent.EXTRA_UID, UserHandle.getUid(userId, pkgSetting.appId)); sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, new int[] {userId}); packageName, extras, 0, null, null, new int[] {userId}); try { try { IActivityManager am = ActivityManagerNative.getDefault(); IActivityManager am = ActivityManagerNative.getDefault(); final boolean isSystem = final boolean isSystem = Loading Loading @@ -12903,11 +12903,11 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putBoolean(Intent.EXTRA_REPLACING, true); extras.putBoolean(Intent.EXTRA_REPLACING, true); sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, null); extras, 0, null, null, null); sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, packageName, sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, packageName, extras, null, null, null); extras, 0, null, null, null); sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, null, sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, null, null, packageName, null, null); null, 0, packageName, null, null); } } } } // Force a gc here. // Force a gc here. Loading Loading @@ -12942,14 +12942,14 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putBoolean(Intent.EXTRA_REMOVED_FOR_ALL_USERS, removedForAllUsers); extras.putBoolean(Intent.EXTRA_REMOVED_FOR_ALL_USERS, removedForAllUsers); if (removedPackage != null) { if (removedPackage != null) { sendPackageBroadcast(Intent.ACTION_PACKAGE_REMOVED, removedPackage, sendPackageBroadcast(Intent.ACTION_PACKAGE_REMOVED, removedPackage, extras, null, null, removedUsers); extras, 0, null, null, removedUsers); if (fullRemove && !replacing) { if (fullRemove && !replacing) { sendPackageBroadcast(Intent.ACTION_PACKAGE_FULLY_REMOVED, removedPackage, sendPackageBroadcast(Intent.ACTION_PACKAGE_FULLY_REMOVED, removedPackage, extras, null, null, removedUsers); extras, 0, null, null, removedUsers); } } } } if (removedAppId >= 0) { if (removedAppId >= 0) { sendPackageBroadcast(Intent.ACTION_UID_REMOVED, null, extras, null, null, sendPackageBroadcast(Intent.ACTION_UID_REMOVED, null, extras, 0, null, null, removedUsers); removedUsers); } } } } Loading Loading @@ -14649,7 +14649,12 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putStringArray(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST, nameList); extras.putStringArray(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST, nameList); extras.putBoolean(Intent.EXTRA_DONT_KILL_APP, killFlag); extras.putBoolean(Intent.EXTRA_DONT_KILL_APP, killFlag); extras.putInt(Intent.EXTRA_UID, packageUid); extras.putInt(Intent.EXTRA_UID, packageUid); sendPackageBroadcast(Intent.ACTION_PACKAGE_CHANGED, packageName, extras, null, null, // If this is not reporting a change of the overall package, then only send it // to registered receivers. We don't want to launch a swath of apps for every // little component state change. final int flags = !componentNames.contains(packageName) ? Intent.FLAG_RECEIVER_REGISTERED_ONLY : 0; sendPackageBroadcast(Intent.ACTION_PACKAGE_CHANGED, packageName, extras, flags, null, null, new int[] {UserHandle.getUserId(packageUid)}); new int[] {UserHandle.getUserId(packageUid)}); } } Loading Loading @@ -15678,7 +15683,7 @@ public class PackageManagerService extends IPackageManager.Stub { } } String action = mediaStatus ? Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE String action = mediaStatus ? Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE : Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE; : Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE; sendPackageBroadcast(action, null, extras, null, finishedReceiver, null); sendPackageBroadcast(action, null, extras, 0, null, finishedReceiver, null); } } } } services/core/java/com/android/server/pm/Settings.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -3861,7 +3861,7 @@ final class Settings { if (pkgSetting.getNotLaunched(userId)) { if (pkgSetting.getNotLaunched(userId)) { if (pkgSetting.installerPackageName != null) { if (pkgSetting.installerPackageName != null) { yucky.sendPackageBroadcast(Intent.ACTION_PACKAGE_FIRST_LAUNCH, yucky.sendPackageBroadcast(Intent.ACTION_PACKAGE_FIRST_LAUNCH, pkgSetting.name, null, pkgSetting.name, null, 0, pkgSetting.installerPackageName, null, new int[] {userId}); pkgSetting.installerPackageName, null, new int[] {userId}); } } pkgSetting.setNotLaunched(false, userId); pkgSetting.setNotLaunched(false, userId); Loading Loading
services/core/java/com/android/server/pm/PackageManagerService.java +21 −16 Original line number Original line Diff line number Diff line Loading @@ -1414,18 +1414,18 @@ public class PackageManagerService extends IPackageManager.Stub { } } } } sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, firstUsers); packageName, extras, 0, null, null, firstUsers); final boolean update = res.removedInfo.removedPackage != null; final boolean update = res.removedInfo.removedPackage != null; if (update) { if (update) { extras.putBoolean(Intent.EXTRA_REPLACING, true); extras.putBoolean(Intent.EXTRA_REPLACING, true); } } sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, updateUsers); packageName, extras, 0, null, null, updateUsers); if (update) { if (update) { sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, packageName, extras, null, null, updateUsers); packageName, extras, 0, null, null, updateUsers); sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, null, null, packageName, null, updateUsers); null, null, 0, packageName, null, updateUsers); // treat asec-hosted packages like removable media on upgrade // treat asec-hosted packages like removable media on upgrade if (res.pkg.isForwardLocked() || isExternal(res.pkg)) { if (res.pkg.isForwardLocked() || isExternal(res.pkg)) { Loading Loading @@ -9370,8 +9370,8 @@ public class PackageManagerService extends IPackageManager.Stub { } } }; }; final void sendPackageBroadcast(final String action, final String pkg, final void sendPackageBroadcast(final String action, final String pkg, final Bundle extras, final Bundle extras, final String targetPkg, final IIntentReceiver finishedReceiver, final int flags, final String targetPkg, final IIntentReceiver finishedReceiver, final int[] userIds) { final int[] userIds) { mHandler.post(new Runnable() { mHandler.post(new Runnable() { @Override @Override Loading Loading @@ -9401,7 +9401,7 @@ public class PackageManagerService extends IPackageManager.Stub { intent.putExtra(Intent.EXTRA_UID, uid); intent.putExtra(Intent.EXTRA_UID, uid); } } intent.putExtra(Intent.EXTRA_USER_HANDLE, id); intent.putExtra(Intent.EXTRA_USER_HANDLE, id); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT | flags); if (DEBUG_BROADCASTS) { if (DEBUG_BROADCASTS) { RuntimeException here = new RuntimeException("here"); RuntimeException here = new RuntimeException("here"); here.fillInStackTrace(); here.fillInStackTrace(); Loading Loading @@ -9593,7 +9593,7 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putInt(Intent.EXTRA_UID, UserHandle.getUid(userId, pkgSetting.appId)); extras.putInt(Intent.EXTRA_UID, UserHandle.getUid(userId, pkgSetting.appId)); sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, new int[] {userId}); packageName, extras, 0, null, null, new int[] {userId}); try { try { IActivityManager am = ActivityManagerNative.getDefault(); IActivityManager am = ActivityManagerNative.getDefault(); final boolean isSystem = final boolean isSystem = Loading Loading @@ -12903,11 +12903,11 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putBoolean(Intent.EXTRA_REPLACING, true); extras.putBoolean(Intent.EXTRA_REPLACING, true); sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, null, null, null); extras, 0, null, null, null); sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, packageName, sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, packageName, extras, null, null, null); extras, 0, null, null, null); sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, null, sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, null, null, packageName, null, null); null, 0, packageName, null, null); } } } } // Force a gc here. // Force a gc here. Loading Loading @@ -12942,14 +12942,14 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putBoolean(Intent.EXTRA_REMOVED_FOR_ALL_USERS, removedForAllUsers); extras.putBoolean(Intent.EXTRA_REMOVED_FOR_ALL_USERS, removedForAllUsers); if (removedPackage != null) { if (removedPackage != null) { sendPackageBroadcast(Intent.ACTION_PACKAGE_REMOVED, removedPackage, sendPackageBroadcast(Intent.ACTION_PACKAGE_REMOVED, removedPackage, extras, null, null, removedUsers); extras, 0, null, null, removedUsers); if (fullRemove && !replacing) { if (fullRemove && !replacing) { sendPackageBroadcast(Intent.ACTION_PACKAGE_FULLY_REMOVED, removedPackage, sendPackageBroadcast(Intent.ACTION_PACKAGE_FULLY_REMOVED, removedPackage, extras, null, null, removedUsers); extras, 0, null, null, removedUsers); } } } } if (removedAppId >= 0) { if (removedAppId >= 0) { sendPackageBroadcast(Intent.ACTION_UID_REMOVED, null, extras, null, null, sendPackageBroadcast(Intent.ACTION_UID_REMOVED, null, extras, 0, null, null, removedUsers); removedUsers); } } } } Loading Loading @@ -14649,7 +14649,12 @@ public class PackageManagerService extends IPackageManager.Stub { extras.putStringArray(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST, nameList); extras.putStringArray(Intent.EXTRA_CHANGED_COMPONENT_NAME_LIST, nameList); extras.putBoolean(Intent.EXTRA_DONT_KILL_APP, killFlag); extras.putBoolean(Intent.EXTRA_DONT_KILL_APP, killFlag); extras.putInt(Intent.EXTRA_UID, packageUid); extras.putInt(Intent.EXTRA_UID, packageUid); sendPackageBroadcast(Intent.ACTION_PACKAGE_CHANGED, packageName, extras, null, null, // If this is not reporting a change of the overall package, then only send it // to registered receivers. We don't want to launch a swath of apps for every // little component state change. final int flags = !componentNames.contains(packageName) ? Intent.FLAG_RECEIVER_REGISTERED_ONLY : 0; sendPackageBroadcast(Intent.ACTION_PACKAGE_CHANGED, packageName, extras, flags, null, null, new int[] {UserHandle.getUserId(packageUid)}); new int[] {UserHandle.getUserId(packageUid)}); } } Loading Loading @@ -15678,7 +15683,7 @@ public class PackageManagerService extends IPackageManager.Stub { } } String action = mediaStatus ? Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE String action = mediaStatus ? Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE : Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE; : Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE; sendPackageBroadcast(action, null, extras, null, finishedReceiver, null); sendPackageBroadcast(action, null, extras, 0, null, finishedReceiver, null); } } } }
services/core/java/com/android/server/pm/Settings.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -3861,7 +3861,7 @@ final class Settings { if (pkgSetting.getNotLaunched(userId)) { if (pkgSetting.getNotLaunched(userId)) { if (pkgSetting.installerPackageName != null) { if (pkgSetting.installerPackageName != null) { yucky.sendPackageBroadcast(Intent.ACTION_PACKAGE_FIRST_LAUNCH, yucky.sendPackageBroadcast(Intent.ACTION_PACKAGE_FIRST_LAUNCH, pkgSetting.name, null, pkgSetting.name, null, 0, pkgSetting.installerPackageName, null, new int[] {userId}); pkgSetting.installerPackageName, null, new int[] {userId}); } } pkgSetting.setNotLaunched(false, userId); pkgSetting.setNotLaunched(false, userId); Loading