diff --git a/keystore2/tests/keystore2_client_attest_key_tests.rs b/keystore2/tests/keystore2_client_attest_key_tests.rs
index a303ee8..db555de 100644
--- a/keystore2/tests/keystore2_client_attest_key_tests.rs
+++ b/keystore2/tests/keystore2_client_attest_key_tests.rs
@@ -675,6 +675,11 @@
         run_as::run_as(APP_USER_CTX, Uid::from_raw(APP_UID), Gid::from_raw(APP_GID), || {
             skip_test_if_no_app_attest_key_feature!();
             let sl = SecLevel::tee();
+            if sl.keystore2.getInterfaceVersion().unwrap() < 4 {
+                // `GET_ATTESTATION_APPLICATION_ID_FAILED` is supported on devices with
+                // `IKeystoreService` version >= 4.
+                return;
+            }
             let att_challenge: &[u8] = b"foo";
             let alias = format!("ks_attest_rsa_encrypt_key_aaid_fail{}", getuid());
 
diff --git a/keystore2/tests/user_auth.rs b/keystore2/tests/user_auth.rs
index 263ad56..38cdf6d 100644
--- a/keystore2/tests/user_auth.rs
+++ b/keystore2/tests/user_auth.rs
@@ -126,12 +126,19 @@
             Uid::from_raw(UID),
             Gid::from_raw(UID),
             move |reader, writer| -> Result<(), String> {
-                // Now we're in a new process, wait to be notified before starting.
-                reader.recv();
-
                 // Action A: create a new unlocked-device-required key (which thus requires
                 // super-encryption), while the device is unlocked.
                 let ks2 = get_keystore_service();
+                if ks2.getInterfaceVersion().unwrap() < 4 {
+                    // Assuming `IKeystoreAuthorization::onDeviceLocked` and
+                    // `IKeystoreAuthorization::onDeviceUnlocked` APIs will be supported on devices
+                    // with `IKeystoreService` >= 4.
+                    return Ok(());
+                }
+
+                // Now we're in a new process, wait to be notified before starting.
+                reader.recv();
+
                 let sec_level = ks2.getSecurityLevel(SecurityLevel::TRUSTED_ENVIRONMENT).unwrap();
                 let params = AuthSetBuilder::new()
                     .unlocked_device_required()
@@ -192,6 +199,14 @@
     }
     .unwrap();
 
+    let ks2 = get_keystore_service();
+    if ks2.getInterfaceVersion().unwrap() < 4 {
+        // Assuming `IKeystoreAuthorization::onDeviceLocked` and
+        // `IKeystoreAuthorization::onDeviceUnlocked` APIs will be supported on devices
+        // with `IKeystoreService` >= 4.
+        assert_eq!(child_handle.get_result(), Ok(()), "child process failed");
+        return;
+    }
     // Now that the separate process has been forked off, it's safe to use binder.
     let user = TestUser::new();
     let user_id = user.id;
