diff --git a/core/java/android/credentials/CredentialManager.java b/core/java/android/credentials/CredentialManager.java index 8b614d87a0da6..23bb22ffb20b6 100644 --- a/core/java/android/credentials/CredentialManager.java +++ b/core/java/android/credentials/CredentialManager.java @@ -50,12 +50,18 @@ import java.util.concurrent.Executor; @SystemService(Context.CREDENTIAL_SERVICE) public final class CredentialManager { private static final String TAG = "CredentialManager"; - private static final String DEVICE_CONFIG_ENABLE_CREDENTIAL_MANAGER = - "enable_credential_manager"; private final Context mContext; private final ICredentialManager mService; + /** + * Flag to enable and disable Credential Manager. + * + * @hide + */ + public static final String DEVICE_CONFIG_ENABLE_CREDENTIAL_MANAGER = + "enable_credential_manager"; + /** * @hide instantiated by ContextImpl. */ diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index c68eea8f35b93..f41d4ab564258 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -46,6 +46,7 @@ import android.content.pm.PackageManager; import android.content.pm.PackageManagerInternal; import android.content.res.Configuration; import android.content.res.Resources.Theme; +import android.credentials.CredentialManager; import android.database.sqlite.SQLiteCompatibilityWalFlags; import android.database.sqlite.SQLiteGlobal; import android.graphics.GraphicsStatsService; @@ -2609,9 +2610,16 @@ public final class SystemServer implements Dumpable { } if (mPackageManager.hasSystemFeature(PackageManager.FEATURE_CREDENTIALS)) { - t.traceBegin("StartCredentialManagerService"); - mSystemServiceManager.startService(CREDENTIAL_MANAGER_SERVICE_CLASS); - t.traceEnd(); + boolean credentialManagerEnabled = + DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_CREDENTIAL, + CredentialManager.DEVICE_CONFIG_ENABLE_CREDENTIAL_MANAGER, true); + if (credentialManagerEnabled) { + t.traceBegin("StartCredentialManagerService"); + mSystemServiceManager.startService(CREDENTIAL_MANAGER_SERVICE_CLASS); + t.traceEnd(); + } else { + Slog.d(TAG, "CredentialManager disabled."); + } } // Translation manager service