diff --git a/hal/audio_hw.c b/hal/audio_hw.c
index c82ba34..cfb1bd5 100644
--- a/hal/audio_hw.c
+++ b/hal/audio_hw.c
@@ -947,7 +947,25 @@
                 } else if(usecase->id == USECASE_AUDIO_RECORD_AFE_PROXY) {
                     out_device = AUDIO_DEVICE_OUT_TELEPHONY_TX;
                 }
-                in_snd_device = platform_get_input_snd_device(adev->platform, out_device);
+
+                /*
+                 * Select a specific device microphone if we are in test mode.
+                 */
+                switch (mFpTestMicSource) {
+                    case FP_TEST_PRIMARY_MIC:
+                        ALOGD("FP test selected primary mic.");
+                        in_snd_device = SND_DEVICE_IN_HANDSET_MIC;
+                        break;
+                    case FP_TEST_SECONDARY_MIC:
+                        ALOGD("FP test selected secondary mic.");
+                        in_snd_device = SND_DEVICE_IN_SPEAKER_MIC;
+                        break;
+                    case FP_TEST_DEFAULT_MIC:
+                    default:
+                        ALOGV("FP test disabled");
+                        in_snd_device = platform_get_input_snd_device(adev->platform, out_device);
+                        break;
+                }
             }
         }
     }
@@ -3207,6 +3225,21 @@
         }
     }
 
+    /* Microphone selection in test mode */
+    ret = str_parms_get_str(parms, FP_TEST_KEY, value, sizeof(value));
+    if (ret >= 0) {
+        if (strncmp(FP_TEST_KEY_PRIMARY, value, sizeof(value)) == 0) {
+            ALOGD("FP test requests primary mic.");
+            mFpTestMicSource = FP_TEST_PRIMARY_MIC;
+        } else if (strncmp(FP_TEST_KEY_SECONDARY, value, sizeof(value)) == 0) {
+            ALOGD("FP test requests secondary mic.");
+            mFpTestMicSource = FP_TEST_SECONDARY_MIC;
+        } else {
+            ALOGD("FP test requests to be disabled");
+            mFpTestMicSource = FP_TEST_DEFAULT_MIC;
+        }
+    }
+
     audio_extn_set_parameters(adev, parms);
 
 done:
diff --git a/hal/audio_hw.h b/hal/audio_hw.h
index be468fe..e3fdc87 100644
--- a/hal/audio_hw.h
+++ b/hal/audio_hw.h
@@ -52,6 +52,16 @@
 #define MAX_SUPPORTED_CHANNEL_MASKS 2
 #define DEFAULT_HDMI_OUT_CHANNELS   2
 
+/* Expose microphone selection for testing purposes */
+#define FP_TEST_KEY             "fp_test"
+#define FP_TEST_KEY_PRIMARY     "primary_mic"
+#define FP_TEST_KEY_SECONDARY   "secondary_mic"
+#define FP_TEST_DEFAULT_MIC     0X00000000
+#define FP_TEST_PRIMARY_MIC     0X00000100
+#define FP_TEST_SECONDARY_MIC   0X00000200
+
+static uint32_t mFpTestMicSource = FP_TEST_DEFAULT_MIC;
+
 #define SND_CARD_STATE_OFFLINE 0
 #define SND_CARD_STATE_ONLINE 1
 
