From 03bb8eeeaa243e56d4731fc0968e1d18fbe67df1 Mon Sep 17 00:00:00 2001 From: Hai Zhang Date: Wed, 31 Jul 2019 14:07:17 -0700 Subject: [PATCH] DO NOT MERGE Fix PermissionManagerService throwing exception for unknown package. The package might have been uninstalled asynchronously because we are not holding the mPackages lock, so just log the error and return. Fixes: 138670149 Test: presubmit Change-Id: I7feeea85d2ab446e83e2101833e448cc962dd448 --- .../server/pm/permission/PermissionManagerService.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 8884821c770eb..899f8022dc8d7 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -2098,7 +2098,8 @@ public class PermissionManagerService { final PackageParser.Package pkg = mPackageManagerInt.getPackage(packageName); if (pkg == null || pkg.mExtras == null) { - throw new IllegalArgumentException("Unknown package: " + packageName); + Log.e(TAG, "Unknown package: " + packageName); + return; } final BasePermission bp; synchronized(mLock) { @@ -2239,7 +2240,8 @@ public class PermissionManagerService { final PackageParser.Package pkg = mPackageManagerInt.getPackage(packageName); if (pkg == null || pkg.mExtras == null) { - throw new IllegalArgumentException("Unknown package: " + packageName); + Log.e(TAG, "Unknown package: " + packageName); + return; } if (mPackageManagerInt.filterAppAccess(pkg, Binder.getCallingUid(), userId)) { throw new IllegalArgumentException("Unknown package: " + packageName);