diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index af838fdf4173..279574a98553 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -1930,8 +1930,12 @@ public class PackageManagerService extends IPackageManager.Stub final boolean update = res.removedInfo != null && res.removedInfo.removedPackage != null; - final String origInstallerPackageName = res.removedInfo != null - ? res.removedInfo.installerPackageName : null; + final String installerPackageName = + res.installerPackageName != null + ? res.installerPackageName + : res.removedInfo != null + ? res.removedInfo.installerPackageName + : null; // If this is the first time we have child packages for a disabled privileged // app that had no children, we grant requested runtime permissions to the new @@ -1996,10 +2000,10 @@ public class PackageManagerService extends IPackageManager.Stub sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, 0 /*flags*/, null /*targetPackage*/, null /*finishedReceiver*/, updateUsers); - if (origInstallerPackageName != null) { + if (installerPackageName != null) { sendPackageBroadcast(Intent.ACTION_PACKAGE_ADDED, packageName, extras, 0 /*flags*/, - origInstallerPackageName, null /*finishedReceiver*/, updateUsers); + installerPackageName, null /*finishedReceiver*/, updateUsers); } // Send replaced for users that don't see the package for the first time @@ -2008,10 +2012,10 @@ public class PackageManagerService extends IPackageManager.Stub packageName, extras, 0 /*flags*/, null /*targetPackage*/, null /*finishedReceiver*/, updateUsers); - if (origInstallerPackageName != null) { + if (installerPackageName != null) { sendPackageBroadcast(Intent.ACTION_PACKAGE_REPLACED, packageName, extras, 0 /*flags*/, - origInstallerPackageName, null /*finishedReceiver*/, updateUsers); + installerPackageName, null /*finishedReceiver*/, updateUsers); } sendPackageBroadcast(Intent.ACTION_MY_PACKAGE_REPLACED, null /*package*/, null /*extras*/, 0 /*flags*/, @@ -17420,6 +17424,7 @@ public class PackageManagerService extends IPackageManager.Stub PackageParser.Package pkg; int returnCode; String returnMsg; + String installerPackageName; PackageRemovedInfo removedInfo; ArrayMap<String, PackageInstalledInfo> addedChildPackages; @@ -18340,6 +18345,7 @@ public class PackageManagerService extends IPackageManager.Stub // Result object to be returned res.setReturnCode(PackageManager.INSTALL_SUCCEEDED); + res.installerPackageName = installerPackageName; if (DEBUG_INSTALL) Slog.d(TAG, "installPackageLI: path=" + tmpPackageFile); |