diff options
| author | 2025-01-05 21:21:53 -0800 | |
|---|---|---|
| committer | 2025-01-05 21:21:53 -0800 | |
| commit | 016ece0a58ddc2d7efaf2373e718e6f6a232ee80 (patch) | |
| tree | 33cb8ddf34513c1646e5a69edd8b6c92311999ca | |
| parent | cca49ba7d3eba6731a4dff05a1154ec45668c2b4 (diff) | |
| parent | a1138270cedf4caf3aeeb36d31daceb722e7191c (diff) | |
Merge "InstallPackageHelper: fiX the NPE problem." into main am: 92f0fc1e1a am: a1138270ce
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/3433745
Change-Id: I159930775cd176acd6d542de9d8ac18ae15138ac
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
| -rw-r--r-- | services/core/java/com/android/server/pm/InstallPackageHelper.java | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/pm/InstallPackageHelper.java b/services/core/java/com/android/server/pm/InstallPackageHelper.java index 85b92c79403a..4c70d2347fb7 100644 --- a/services/core/java/com/android/server/pm/InstallPackageHelper.java +++ b/services/core/java/com/android/server/pm/InstallPackageHelper.java @@ -1533,7 +1533,7 @@ final class InstallPackageHelper { boolean systemApp = false; boolean replace = false; synchronized (mPm.mLock) { - final PackageSetting ps = mPm.mSettings.getPackageLPr(pkgName); + PackageSetting ps = mPm.mSettings.getPackageLPr(pkgName); // Check if installing already existing package if ((installFlags & PackageManager.INSTALL_REPLACE_EXISTING) != 0) { String oldName = mPm.mSettings.getRenamedPackageLPr(pkgName); @@ -1544,14 +1544,15 @@ final class InstallPackageHelper { // name. We must continue using the original name, so // rename the new package here. parsedPackage.setPackageName(oldName); - pkgName = parsedPackage.getPackageName(); - replace = true; + pkgName = oldName; + ps = mPm.mSettings.getPackageLPr(oldName); if (DEBUG_INSTALL) { Slog.d(TAG, "Replacing existing renamed package: oldName=" + oldName + " pkgName=" + pkgName); } - } else if (ps != null) { - // This package, under its official name, already exists + } + if (ps != null) { + // This package, under its official name or its old name, already exists // on the device; we should replace it. replace = true; if (DEBUG_INSTALL) Slog.d(TAG, "Replace existing package: " + pkgName); |