From dea7086695dfa40bccd7bd623d05a6119f92b481 Mon Sep 17 00:00:00 2001 From: Jeongsik Mun Date: Sat, 14 Nov 2020 14:06:44 +0900 Subject: [PATCH] Fix system server crash during sendMyPackageSuspendedOrUnsuspended() IllegalArgumentException could be thrown when the package doesn't exist from getSuspendedPackageAppExtrasInternal(), which causes system server crash This fix replaces throwing IllegalStateException with returning null, instead of handling the exception. Returning null when the package doesn't exist still operates according to the public contact since an uninstalled application would not be considered 'suspended'. Bug: 171906179 Test: compile & verify basic functions working Change-Id: I9b23c17530393a0f51e283d0bc2c44966ddf6298 --- .../core/java/com/android/server/pm/PackageManagerService.java | 2 +- 1 file changed, 1 insertion(+), 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 85659edd13214..bfce8e5321556 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -13937,7 +13937,7 @@ public class PackageManagerService extends IPackageManager.Stub synchronized (mLock) { final PackageSetting ps = mSettings.mPackages.get(packageName); if (ps == null) { - throw new IllegalArgumentException("Unknown target package: " + packageName); + return null; } final PackageUserState pus = ps.readUserState(userId); final Bundle allExtras = new Bundle();