From 41475035a11c921f357fa893bf8a6f0ffa2141b2 Mon Sep 17 00:00:00 2001 From: woongki min Date: Wed, 21 Sep 2022 11:00:24 +0900 Subject: [PATCH] Fix PermissionHelper NullPointerException During the FOTA process, the app can be deleted depending on the situation. If the app is deleted, PackageInfo needs a null check because it can be returned null. Test: FOTA from S OS to T OS Test: System app is deleted by policy during FOTA process Test: Monitor notification permission migration. Change-Id: I72a69c3e8998f3182cec10dd1583020096204ad4 --- .../com/android/server/notification/PermissionHelper.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/core/java/com/android/server/notification/PermissionHelper.java b/services/core/java/com/android/server/notification/PermissionHelper.java index 09ed56745e542..14e82f351ff4f 100644 --- a/services/core/java/com/android/server/notification/PermissionHelper.java +++ b/services/core/java/com/android/server/notification/PermissionHelper.java @@ -257,9 +257,11 @@ public final class PermissionHelper { private boolean packageRequestsNotificationPermission(String packageName, @UserIdInt int userId) { try { - String[] permissions = mPackageManager.getPackageInfo(packageName, GET_PERMISSIONS, - userId).requestedPermissions; - return ArrayUtils.contains(permissions, NOTIFICATION_PERMISSION); + PackageInfo pi = mPackageManager.getPackageInfo(packageName, GET_PERMISSIONS, userId); + if (pi != null) { + String[] permissions = pi.requestedPermissions; + return ArrayUtils.contains(permissions, NOTIFICATION_PERMISSION); + } } catch (RemoteException e) { Slog.e(TAG, "Could not reach system server", e); }