diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java index ebc18bcd2369a..f3b8e94a8af79 100644 --- a/services/core/java/com/android/server/locksettings/LockSettingsService.java +++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java @@ -814,7 +814,6 @@ public class LockSettingsService extends ILockSettings.Stub { .hasSystemFeature(PackageManager.FEATURE_SECURE_LOCK_SCREEN); migrateOldData(); getGateKeeperService(); - mSpManager.initWeaverService(); getAuthSecretHal(); mDeviceProvisionedObserver.onSystemReady(); diff --git a/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java b/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java index ea000a0b96078..789e5b2902d50 100644 --- a/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java +++ b/services/core/java/com/android/server/locksettings/SyntheticPasswordManager.java @@ -499,40 +499,35 @@ class SyntheticPasswordManager { return null; } - public synchronized void initWeaverService() { + private synchronized boolean isWeaverAvailable() { if (mWeaver != null) { - return; + return true; } + // Re-initialize weaver in case there was a transient error preventing access to it. IWeaver weaver = getWeaverService(); if (weaver == null) { - return; + return false; } - // Get the config - WeaverConfig weaverConfig = null; + final WeaverConfig weaverConfig; try { weaverConfig = weaver.getConfig(); } catch (RemoteException | ServiceSpecificException e) { Slog.e(TAG, "Failed to get weaver config", e); + return false; } if (weaverConfig == null || weaverConfig.slots <= 0) { - Slog.e(TAG, "Failed to initialize weaver config"); - return; + Slog.e(TAG, "Invalid weaver config"); + return false; } mWeaver = weaver; mWeaverConfig = weaverConfig; mPasswordSlotManager.refreshActiveSlots(getUsedWeaverSlots()); Slog.i(TAG, "Weaver service initialized"); - } - private synchronized boolean isWeaverAvailable() { - if (mWeaver == null) { - //Re-initializing weaver in case there was a transient error preventing access to it. - initWeaverService(); - } - return mWeaver != null && mWeaverConfig.slots > 0; + return true; } /** diff --git a/services/tests/servicestests/src/com/android/server/locksettings/MockSyntheticPasswordManager.java b/services/tests/servicestests/src/com/android/server/locksettings/MockSyntheticPasswordManager.java index a40cb0625e1cc..e8ef398f3738b 100644 --- a/services/tests/servicestests/src/com/android/server/locksettings/MockSyntheticPasswordManager.java +++ b/services/tests/servicestests/src/com/android/server/locksettings/MockSyntheticPasswordManager.java @@ -119,6 +119,5 @@ public class MockSyntheticPasswordManager extends SyntheticPasswordManager { public void enableWeaver() { mWeaverService = new MockWeaverService(); - initWeaverService(); } }