diff --git a/emulator/audio/audio_policy_configuration.xml b/emulator/audio/audio_policy_configuration.xml
index 2bc3172..30d20f0 100644
--- a/emulator/audio/audio_policy_configuration.xml
+++ b/emulator/audio/audio_policy_configuration.xml
@@ -60,6 +60,8 @@
                 <item>bus6_notification_out</item>
                 <item>bus7_system_sound_out</item>
                 <item>bus0_mic1_in</item>
+                <!-- Test input device port for audio patch -->
+                <item>bus1_audio_patch_test_in</item>
             </attachedDevices>
             <defaultOutputDevice>bus0_media_out</defaultOutputDevice>
             <mixPorts>
@@ -116,6 +118,15 @@
                              samplingRates="48000"
                              channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
                 </mixPort>
+                <!--
+                  Test mixport for audio patch,
+                  this needs to be present to work around the framework limitation
+                -->
+                <mixPort name="mixport_audio_patch_in" role="sink">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                             samplingRates="48000"
+                             channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+                </mixPort>
             </mixPorts>
             <devicePorts>
                 <devicePort tagName="bus0_media_out" role="sink" type="AUDIO_DEVICE_OUT_BUS"
@@ -194,6 +205,20 @@
                         address="bus0_mic1_in">
                     <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
                             samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+                    <gains>
+                        <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+                                minValueMB="-8400" maxValueMB="4000" defaultValueMB="0" stepValueMB="100"/>
+                    </gains>
+                </devicePort>
+                <!-- Test input device ports for audio patch -->
+                <devicePort tagName="bus1_audio_patch_test_in" type="AUDIO_DEVICE_IN_BUS" role="source"
+                        address="bus1_audio_patch_test_in">
+                    <profile name="" format="AUDIO_FORMAT_PCM_16_BIT"
+                            samplingRates="48000" channelMasks="AUDIO_CHANNEL_IN_STEREO"/>
+                    <gains>
+                        <gain name="" mode="AUDIO_GAIN_MODE_JOINT"
+                                minValueMB="-8400" maxValueMB="4000" defaultValueMB="0" stepValueMB="100"/>
+                    </gains>
                 </devicePort>
             </devicePorts>
             <!-- route declaration, i.e. list all available sources for a given sink -->
@@ -207,6 +232,11 @@
                 <route type="mix" sink="bus6_notification_out" sources="mixport_bus6_notification_out"/>
                 <route type="mix" sink="bus7_system_sound_out" sources="mixport_bus7_system_sound_out"/>
                 <route type="mix" sink="mixport_bus0_mic1_in" sources="bus0_mic1_in"/>
+                <!--
+                  Listed source device ports will be routed to desired sinks via audio patch,
+                  this route needs to be present to work around framework limitation for now
+                -->
+                <route type="mix" sink="mixport_audio_patch_in" sources="bus1_audio_patch_test_in"/>
             </routes>
 
         </module>
diff --git a/emulator/audio/driver/audio_hw.c b/emulator/audio/driver/audio_hw.c
index 24294ca..83d4858 100644
--- a/emulator/audio/driver/audio_hw.c
+++ b/emulator/audio/driver/audio_hw.c
@@ -1360,11 +1360,31 @@
         unsigned int num_sinks,
         const struct audio_port_config *sinks,
         audio_patch_handle_t *handle) {
+    // Logging only, no real work is done here
+    for (int i = 0; i < num_sources; i++) {
+        ALOGD("%s: source[%d] type=%d address=%s", __func__, i, sources[i].type,
+                sources[i].type == AUDIO_PORT_TYPE_DEVICE
+                ? sources[i].ext.device.address
+                : "");
+    }
+    for (int i = 0; i < num_sinks; i++) {
+        ALOGD("%s: sink[%d] type=%d address=%s", __func__, i, sinks[i].type,
+                sinks[i].type == AUDIO_PORT_TYPE_DEVICE ? sinks[i].ext.device.address
+                : "N/A");
+    }
+    if (num_sources == 1 && num_sinks == 1 &&
+            sources[0].type == AUDIO_PORT_TYPE_DEVICE &&
+            sinks[0].type == AUDIO_PORT_TYPE_DEVICE) {
+        // The same audio_patch_handle_t will be passed to release_audio_patch
+        *handle = 42;
+        ALOGD("%s: handle: %d", __func__, *handle);
+    }
     return 0;
 }
 
 static int adev_release_audio_patch(struct audio_hw_device *dev,
         audio_patch_handle_t handle) {
+    ALOGD("%s: handle: %d", __func__, handle);
     return 0;
 }
 
