diff --git a/stats/atoms.proto b/stats/atoms.proto
index 4653f00..874b6f6 100644
--- a/stats/atoms.proto
+++ b/stats/atoms.proto
@@ -507,10 +507,7 @@
         RebootEscrowRebootReported reboot_escrow_reboot_reported = 341 [(module) = "framework"];
         MediametricsMediaParserReported mediametrics_mediaparser_reported = 316;
         BinderLatencyReported binder_latency_reported = 342 [(module) = "framework"];
-        Keystore2KeyCreationEventReported keystore2_key_creation_event_reported = 360;
-        Keystore2KeyOperationEventReported keystore2_key_operation_event_reported = 361;
-        Keystore2CrashEventReported keystore2_crash_event_reported = 362;
-        RkpErrorReported rkp_error_reported = 363;
+        // 360-363 are reserved.
         OdrefreshReported odrefresh_reported = 366 [(module) = "art"];
         NetworkIpReachabilityMonitorReported network_ip_reachability_monitor_reported =
             367 [(module) = "network_stack"];
@@ -12096,216 +12093,6 @@
 }
 
 /**
- * Logs: creation of different types of cryptographic keys in keystore2.
- * Logged from: system/security/keystore2/metrics.rs
- */
-message Keystore2KeyCreationEventReported {
-
-    enum Algorithm {
-        // ALGORITHM is prepended because UNSPECIFIED exists in other enums as well.
-        ALGORITHM_UNSPECIFIED = 0;
-        // Asymmetric algorithms.
-        RSA = 1;
-        // 2 removed, do not reuse.
-        EC = 3;
-        // Block cipher algorithms
-        AES = 32;
-        TRIPLE_DES = 33;
-        // MAC algorithms
-        HMAC = 128;
-    };
-    // Algorithm associated with the key
-    optional Algorithm algorithm = 1;
-
-    // Size of the key, based on the algorithm used.
-    optional int32 key_size = 2;
-
-    enum KeyOrigin {
-        // Unspecified takes 0. Other values are incremented by 1 compared to keymint spec.
-        ORIGIN_UNSPECIFIED = 0;
-        // Generated in keymaster.  Should not exist outside the TEE.
-        GENERATED = 1;
-        // Derived inside keymaster.  Likely exists off-device.
-        DERIVED = 2;
-        // Imported into keymaster.  Existed as cleartext in Android.
-        IMPORTED = 3;
-        // Previously used for another purpose that is now obsolete.
-        RESERVED = 4;
-        // Securely imported into Keymaster.
-        SECURELY_IMPORTED = 5;
-    };
-    // Logs whether the key was generated, imported, securely imported, or derived.
-    optional KeyOrigin key_origin = 3;
-
-    enum HardwareAuthenticatorType {
-        // Unspecified takes 0. Other values are incremented by 1 compared to keymint spec.
-        AUTH_TYPE_UNSPECIFIED = 0;
-        NONE = 1;
-        PASSWORD = 2;
-        FINGERPRINT = 3;
-        ANY = 5;
-    };
-    /**
-     * What auth types does this key require? If none,
-     * then no auth required.
-     */
-    optional HardwareAuthenticatorType user_auth_type = 4;
-
-    /**
-     * If user authentication is required, is the requirement time based? If it
-     * is time based then this field indicates the time out in seconds.
-     */
-    optional int32 user_auth_key_timeout_seconds = 5;
-
-    /**
-     * Padding mode, digest, block_mode and purpose should ideally be repeated
-     * fields. However, since statsd does not support repeated fields in
-     * pushed atoms, they are represented using bitmaps.
-     */
-
-    /**
-     * Track which padding mode is being used.
-     * Bitmap composition is given by PaddingModeBitPosition enum
-     * defined in system/security/keystore2/metrics.rs.
-     */
-    optional int32 padding_mode_bitmap = 6;
-
-    /**
-     * Track which digest is being used.
-     * Bitmap composition is given by DigestBitPosition enum
-     * defined in system/security/keystore2/metrics.rs.
-     */
-    optional int32 digest_bitmap = 7;
-
-    /**
-     * Track which block mode is being used.
-     * Bitmap composition is given by BlockModeBitPosition enum
-     * defined in system/security/keystore2/metrics.rs.
-     */
-    optional int32 block_mode_bitmap = 8;
-
-    /**
-     * Track which purpose is being used.
-     * Bitmap composition is given by KeyPurposeBitPosition enum
-     * defined in system/security/keystore2/metrics.rs.
-     */
-    optional int32 purpose_bitmap = 9;
-
-    enum EcCurve {
-        // Unspecified takes 0. Other values are incremented by 1 compared to keymint spec.
-        EC_CURVE_UNSPECIFIED = 0;
-        P_224 = 1;
-        P_256 = 2;
-        P_384 = 3;
-        P_521 = 4;
-    };
-    // Which ec curve was selected if elliptic curve cryptography is in use
-    optional EcCurve ec_curve = 10;
-
-    /**
-     * Response code (system/hardware/interfaces/keystore2/aidl/../ResponseCode.aidl)
-     * or
-     * error code (hardware/interfaces/security/keymint/aidl/../ErrorCode.aidl)
-     */
-    optional int32 error_code = 11;
-
-    // Indicates whether key attestation requested in creation
-    optional bool attestation_requested = 12;
-
-    // Security level of the Keymint instance which creates the key.
-    optional android.system.security.keystore2.SecurityLevelEnum security_level = 13;
-}
-
-/**
- * Logs operations using cryptographic keys in keystore2.
- * Logged from: system/security/keystore2/metrics.rs
- */
-message Keystore2KeyOperationEventReported {
-
-    enum KeyPurpose {
-        // Unspecified takes 0. Other values are incremented by 1 compared to keymint spec.
-        KEY_PURPOSE_UNSPECIFIED = 0;
-
-        // Usable with RSA, EC and AES keys.
-        ENCRYPT = 1;
-
-        // Usable with RSA, EC and AES keys.
-        DECRYPT = 2;
-
-        // Usable with RSA, EC and HMAC keys.
-        SIGN = 3;
-
-        // Usable with RSA, EC and HMAC keys.
-        VERIFY = 4;
-
-        // 5 is reserved
-        // Usable with wrapping keys.
-        WRAP_KEY = 6;
-
-        // Key Agreement, usable with EC keys.
-        AGREE_KEY = 7;
-
-        // Usable as an attestation signing key.
-        ATTEST_KEY = 8;
-    }
-    // Purpose of the key operation
-    optional KeyPurpose purpose = 1;
-
-    /**
-     * Padding mode, digest, block_mode and purpose should ideally be repeated
-     * fields. However, since statsd does not support repeated fields in
-     * pushed atoms, they are represented using bitmaps.
-     */
-
-    /**
-     * Track which padding mode is being used.
-     * Bitmap composition is given by PaddingModeBitPosition enum
-     * defined in system/security/keystore2/metrics.rs.
-     */
-    optional int32 padding_mode_bitmap = 2;
-
-    /**
-     * Track which digest is being used.
-     * Bitmap composition is given by DigestBitPosition enum
-     * defined in system/security/keystore2/metrics.rs.
-     */
-    optional int32 digest_bitmap = 3;
-
-    /**
-     * Track which block mode is being used.
-     * Bitmap composition is given by BlockModeBitPosition enum
-     * defined in system/security/keystore2/metrics.rs.
-     */
-    optional int32 block_mode_bitmap = 4;
-
-    enum Outcome {
-        OUTCOME_UNSPECIFIED = 0;
-        DROPPED = 1;
-        SUCCESS = 2;
-        ABORT = 3;
-        PRUNED = 4;
-        ERROR = 5;
-    }
-    // Outcome of the operation
-    optional Outcome outcome = 5;
-
-    // Response code or error code in case of error outcome
-    optional int32 error_code = 6;
-
-    // Indicates whether the key was upgraded during the operation
-    optional bool key_upgraded = 7;
-
-    // Security level of the Keymint instance which performs the operation.
-    optional android.system.security.keystore2.SecurityLevelEnum security_level = 8;
-}
-
-/**
- * Logs: Keystore 2 crash events.
- * Logged from: system/security/keystore2
- */
-message Keystore2CrashEventReported {}
-
-/**
  * Logs: key creation events with Algorithm, Origin, Error and Attestation info.
  * Logged from: system/security/keystore2/metrics.rs
  */
@@ -12579,23 +12366,6 @@
  * Logs Remote Key Provisioning (RKP) related error events.
  * Logged from: system/security/keystore2
  */
-message RkpErrorReported {
-
-    enum RkpErrorEvent {
-        RKP_ERROR_UNSPECIFIED = 0;
-        // The key pool is out of keys.
-        OUT_OF_KEYS = 1;
-        // Falling back to factory provisioned keys during hybrid mode.
-        FALL_BACK_DURING_HYBRID = 2;
-    }
-    // Type of the error event
-    optional RkpErrorEvent rkp_error_event = 1;
-}
-
-/**
- * Logs Remote Key Provisioning (RKP) related error events.
- * Logged from: system/security/keystore2
- */
 message RkpErrorStats {
 
     enum RkpError {
@@ -12613,22 +12383,39 @@
 }
 
 /**
- * Logs: Count of keys in the key pool related to
+ * Logs: Status of the attestation key pool related to
  * Remote Key Provisioning (RKP).
  * Logged from: system/security/keystore2
  */
 message RkpPoolStats {
-    enum PoolStatus {
-        EXPIRING = 1;
-        UNASSIGNED = 2;
-        ATTESTED = 3;
-        TOTAL = 4;
-    }
-    // State of the attestation key pool, for which the count of keys is reported.
-    optional PoolStatus pool_status = 1;
+    /**
+     * Security level of the Keymint instance associated with the
+     * attestation pool status.
+     */
+    optional android.system.security.keystore2.SecurityLevelEnum security_level = 1;
 
-    // Count of keys in the particular status
-    optional int32 count_of_keys = 2;
+    /**
+     * The number of signed attestation certificate chains which are
+     * expired.
+     */
+    optional int32 expiring = 2;
+
+    /**
+     * The number of signed attestation certificate chains which have
+     * not yet been assigned to an app.
+     */
+    optional int32 unassigned = 3;
+
+    /**
+     * The number of signed attestation keys.
+     */
+    optional int32 attested = 4;
+
+    /**
+     * The total number of attestation keys.
+     */
+    optional int32 total = 5;
+
 }
 
 /**
