From d75930cb1f319651d5ad5c58143ac4fb22c110bf Mon Sep 17 00:00:00 2001 From: Rubin Xu Date: Wed, 10 May 2023 16:47:53 +0100 Subject: DevicePolicyManager: Skip clearing APN before boot completed It's not possible to connect to APN's content provider before boot completed, so skip the cleanup step in this case. Bug: 277903236 Test: manual Change-Id: I7d2304a13e1a4e3ac81ad675ced600c9c3801576 --- .../server/devicepolicy/DevicePolicyManagerService.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 02c6d6849cca..2d1de853c4c8 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -259,7 +259,6 @@ import android.Manifest.permission; import android.accessibilityservice.AccessibilityServiceInfo; import android.accounts.Account; import android.accounts.AccountManager; -import android.accounts.AccountManagerFuture; import android.accounts.AuthenticatorException; import android.accounts.OperationCanceledException; import android.annotation.IntDef; @@ -447,7 +446,6 @@ import android.util.AtomicFile; import android.util.DebugUtils; import android.util.IndentingPrintWriter; import android.util.IntArray; -import android.util.Log; import android.util.Pair; import android.util.Slog; import android.util.SparseArray; @@ -490,6 +488,7 @@ import com.android.server.LockGuard; import com.android.server.PersistentDataBlockManagerInternal; import com.android.server.SystemServerInitThreadPool; import com.android.server.SystemService; +import com.android.server.SystemServiceManager; import com.android.server.devicepolicy.ActiveAdmin.TrustAgentInfo; import com.android.server.inputmethod.InputMethodManagerInternal; import com.android.server.net.NetworkPolicyManagerInternal; @@ -10072,6 +10071,13 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { if (!mHasTelephonyFeature) { return; } + if (!LocalServices.getService(SystemServiceManager.class).isBootCompleted()) { + Slogf.i(LOG_TAG, "Skip clearing managed profile Apn before boot completed"); + // Cannot talk to APN content provider before system boots + // Ideally we should delay the cleanup post boot_completed, not just + // skipping it altogether. + return; + } final List apns = getOverrideApnsUnchecked(); for (ApnSetting apn : apns) { if (apn.getApnTypeBitmask() == ApnSetting.TYPE_ENTERPRISE) { -- cgit v1.2.3-59-g8ed1b