From cb273b324cb2c8a8f114693373ef6df90cd92d4a Mon Sep 17 00:00:00 2001 From: Hui Yu Date: Wed, 20 Jan 2021 13:33:10 -0800 Subject: [PATCH] Checking nullness on ActivityManagerInternal. CTS test does not have a valid ActivityManagerInternal. Bug: 178024608 Test: atest com.android.server.am.UserControllerTest#testStartUser_background Change-Id: I1373ff511e1fb37a7698b37020074de9bb8a6ed3 --- .../java/com/android/server/am/PreBootBroadcaster.java | 8 ++++++-- .../core/java/com/android/server/am/UserController.java | 8 ++++++-- .../java/com/android/server/pm/PackageManagerService.java | 8 ++++++-- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/am/PreBootBroadcaster.java b/services/core/java/com/android/server/am/PreBootBroadcaster.java index f20b3a18dc6d9..60b246726593e 100644 --- a/services/core/java/com/android/server/am/PreBootBroadcaster.java +++ b/services/core/java/com/android/server/am/PreBootBroadcaster.java @@ -110,8 +110,12 @@ public abstract class PreBootBroadcaster extends IIntentReceiver.Stub { EventLogTags.writeAmPreBoot(mUserId, componentName.getPackageName()); mIntent.setComponent(componentName); - final long duration = LocalServices.getService(ActivityManagerInternal.class) - .getBootTimeTempAllowListDuration(); + long duration = 10_000; + final ActivityManagerInternal amInternal = + LocalServices.getService(ActivityManagerInternal.class); + if (amInternal != null) { + duration = amInternal.getBootTimeTempAllowListDuration(); + } final BroadcastOptions bOptions = BroadcastOptions.makeBasic(); bOptions.setTemporaryAppWhitelistDuration( BroadcastOptions.TEMPORARY_WHITELIST_TYPE_FOREGROUND_SERVICE_ALLOWED, diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java index 6d90eaafcf774..ffe1d68c05834 100644 --- a/services/core/java/com/android/server/am/UserController.java +++ b/services/core/java/com/android/server/am/UserController.java @@ -2811,8 +2811,12 @@ class UserController implements Handler.Callback { } private BroadcastOptions getTemporaryAppWhitelistBroadcastOptions() { - final long duration = LocalServices.getService(ActivityManagerInternal.class) - .getBootTimeTempAllowListDuration(); + long duration = 10_000; + final ActivityManagerInternal amInternal = + LocalServices.getService(ActivityManagerInternal.class); + if (amInternal != null) { + duration = amInternal.getBootTimeTempAllowListDuration(); + } final BroadcastOptions bOptions = BroadcastOptions.makeBasic(); bOptions.setTemporaryAppWhitelistDuration( BroadcastOptions.TEMPORARY_WHITELIST_TYPE_FOREGROUND_SERVICE_ALLOWED, diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 7952c255fd570..e7a04ef2b449d 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -15071,8 +15071,12 @@ public class PackageManagerService extends IPackageManager.Stub } final IActivityManager am = ActivityManager.getService(); try { - final long duration = LocalServices.getService(ActivityManagerInternal.class) - .getBootTimeTempAllowListDuration(); + long duration = 10_000; + final ActivityManagerInternal amInternal = + LocalServices.getService(ActivityManagerInternal.class); + if (amInternal != null) { + duration = amInternal.getBootTimeTempAllowListDuration(); + } final BroadcastOptions bOptions = BroadcastOptions.makeBasic(); bOptions.setTemporaryAppWhitelistDuration( BroadcastOptions.TEMPORARY_WHITELIST_TYPE_FOREGROUND_SERVICE_ALLOWED,