summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Rubin Xu <rubinxu@google.com> 2023-05-10 16:47:53 +0100
committer Rubin Xu <rubinxu@google.com> 2023-05-10 16:50:25 +0100
commitd75930cb1f319651d5ad5c58143ac4fb22c110bf (patch)
tree8082ef01b505ed39d3a762eb640972e129497324
parentb1cd493738169af209265175fde145bfc4e03e4f (diff)
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
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java10
1 files 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<ApnSetting> apns = getOverrideApnsUnchecked();
for (ApnSetting apn : apns) {
if (apn.getApnTypeBitmask() == ApnSetting.TYPE_ENTERPRISE) {