From f7d5bc1201996b3c3e5f15b38f8677fa2e55119a Mon Sep 17 00:00:00 2001 From: Alex Kershaw Date: Wed, 2 Dec 2020 13:31:14 +0000 Subject: Fix NPE with missing DPMI DevicePolicyManagerInternal is not always available (when device admin is not an enabled feature), so treat it as nullable in WallpaperManagerService. Does not need to be cherry-picked since cherry-pick CL I103c45ea61814e476eea197d357ef0ce75edefdc already accounts for this. Fixes: 174642338 Bug: 144048540 Bug: 172682826 Bug: 153995973 Change-Id: Ib7ad0d6d1038ad4dd3fec7c617ef3c23c911293d --- .../java/com/android/server/wallpaper/WallpaperManagerService.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java index a1cad5fbcf22..784f6fb3b659 100644 --- a/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java +++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java @@ -2846,8 +2846,9 @@ public class WallpaperManagerService extends IWallpaperManager.Stub if (!uidMatchPackage) { return false; // callingPackage was faked. } - if (LocalServices.getService(DevicePolicyManagerInternal.class) - .isDeviceOrProfileOwnerInCallingUser(callingPackage)) { + final DevicePolicyManagerInternal dpmi = + LocalServices.getService(DevicePolicyManagerInternal.class); + if (dpmi != null && dpmi.isDeviceOrProfileOwnerInCallingUser(callingPackage)) { return true; } final int callingUserId = UserHandle.getCallingUserId(); -- cgit v1.2.3-59-g8ed1b