From 35e226b0e76dd581e9afa83bb858001a8a89969a Mon Sep 17 00:00:00 2001 From: Yurii Zubrytskyi Date: Wed, 22 Dec 2021 16:26:39 -0800 Subject: [PATCH] Fix null pointer exception during initialization PackageManagerService ctor calls InitAndSystemPackageHelper.initPackages() to create the OverlayConfig object, but this object is needed inside the initPackages() call, when parsing an updated system overlay in ScanPackageHelper.assertPackageIsValid() -> isOverlayMutable This change uses the OverlayConfig's singleton accessor as a backup when the member isn't set Bug: 211469178 Test: install APK from the bug, reboot - no crashloop Change-Id: I0d2b2fc1317db963980dbd1ca84dc61d2bfec5f5 --- .../core/java/com/android/server/pm/PackageManagerService.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 9f5adcb6f16f3..2b3e1c5bbc768 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -9490,7 +9490,8 @@ public class PackageManagerService extends IPackageManager.Stub } boolean isOverlayMutable(String packageName) { - return mOverlayConfig.isMutable(packageName); + return (mOverlayConfig != null ? mOverlayConfig + : OverlayConfig.getSystemInstance()).isMutable(packageName); } @ScanFlags int getSystemPackageScanFlags(File codePath) {