diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java
index a4d08b06d6206..af66bef7ae590 100644
--- a/services/core/java/com/android/server/locksettings/LockSettingsService.java
+++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java
@@ -195,9 +195,40 @@ import javax.crypto.SecretKey;
import javax.crypto.spec.GCMParameterSpec;
/**
- * Keeps the lock pattern/password data and related settings for each user. Used by
- * LockPatternUtils. Needs to be a service because Settings app also needs to be able to save
- * lockscreen information for secondary users.
+ * LockSettingsService (LSS) mainly has the following responsibilities:
+ *
+ *
+ * - Provide APIs to verify and change the Lock Screen Knowledge Factor (LSKF) ("lockscreen
+ * credential") of each user. Unlock users when their correct LSKF is given.
+ *
+ * - Store other lockscreen related settings, such as some Keyguard (UI) settings.
+ *
+ * - Manage each user's synthetic password (SP), which is their main cryptographic secret.
+ * See {@link SyntheticPasswordManager}.
+ *
+ * - Protect each user's SP using their LSKF. Use the Gatekeeper or Weaver HAL to ensure that
+ * guesses of the LSKF are ratelimited by the TEE or secure element.
+ *
+ * - Protect each user's data using their SP. For example, use the SP to encrypt/decrypt the
+ * user's credential-encrypted (CE) key for file-based encryption (FBE).
+ *
+ * - Generate, protect, and use profile passwords for managed profiles.
+ *
+ * - Support unlocking the SP by alternative means: resume-on-reboot (reboot escrow) for easier
+ * OTA updates, and escrow tokens when set up by the Device Policy Controller (DPC).
+ *
+ * - Implement part of the Factory Reset Protection (FRP) and Repair Mode features by storing
+ * the information needed to verify a user's LSKF on the persist or metadata partition.
+ *
+ * - Support insider attack resistance using the AuthSecret HAL.
+ *
+ * - Implement "recoverable keystore", a feature that enables end-to-end encrypted backups.
+ * See {@link android.security.keystore.recovery.RecoveryController}.
+ *
+ *
+ * The main clients of LockSettingsService are Keyguard (i.e. the lockscreen UI, which is part of
+ * System UI), the Settings app (com.android.settings), and other parts of system_server. Most
+ * methods are protected by ACCESS_KEYGUARD_SECURE_STORAGE which only system processes can have.
*
* @hide
*/