summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> 2025-01-05 21:21:53 -0800
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2025-01-05 21:21:53 -0800
commit016ece0a58ddc2d7efaf2373e718e6f6a232ee80 (patch)
tree33cb8ddf34513c1646e5a69edd8b6c92311999ca
parentcca49ba7d3eba6731a4dff05a1154ec45668c2b4 (diff)
parenta1138270cedf4caf3aeeb36d31daceb722e7191c (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.java11
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);