diff --git a/OWNERS b/OWNERS
index 344e715..4d9907d 100644
--- a/OWNERS
+++ b/OWNERS
@@ -1,2 +1 @@
-trong@google.com
 yim@google.com
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/audio/V4_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/audio/V4_0/iface_fuzzer/Android.mk
index e2179b4..3e5aaa8 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/audio/V4_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalAudioV4_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/audio/V4_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/audio/V4_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..7163098 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/audio/V4_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalAudioV4_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalAudioV4_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.audio@4.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/audio/common/V4_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/audio/common/V4_0/iface_fuzzer/Android.mk
index e2179b4..4ca096d 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/audio/common/V4_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalAudioCommonV4_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/audio/common/V4_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/audio/common/V4_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..aa9f697 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/audio/common/V4_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalAudioCommonV4_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalAudioCommonV4_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.audio.common@4.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/audio/effect/V4_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/audio/effect/V4_0/iface_fuzzer/Android.mk
index e2179b4..19b61ff 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/audio/effect/V4_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalAudioEffectV4_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/audio/effect/V4_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/audio/effect/V4_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..03bba80 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/audio/effect/V4_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalAudioEffectV4_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalAudioEffectV4_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.audio.effect@4.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/authsecret/V1_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/authsecret/V1_0/iface_fuzzer/Android.mk
index e2179b4..b633198 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/authsecret/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalAuthsecretV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/authsecret/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/authsecret/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..364bcd2 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/authsecret/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalAuthsecretV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalAuthsecretV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.authsecret@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/automotive/audiocontrol/V1_0/iface_fuzzer/Android.mk
similarity index 78%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/automotive/audiocontrol/V1_0/iface_fuzzer/Android.mk
index e2179b4..a9b8f05 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/automotive/audiocontrol/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalAutomotiveAudiocontrolV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/automotive/audiocontrol/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 74%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/automotive/audiocontrol/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..100f2fe 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/automotive/audiocontrol/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalAutomotiveAudiocontrolV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalAutomotiveAudiocontrolV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.automotive.audiocontrol@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/bluetooth/a2dp/V1_0/iface_fuzzer/Android.mk~HEAD
similarity index 78%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/bluetooth/a2dp/V1_0/iface_fuzzer/Android.mk~HEAD
index e2179b4..fd856f6 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/bluetooth/a2dp/V1_0/iface_fuzzer/Android.mk~HEAD
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalBluetoothA2DpV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/bluetooth/a2dp/V1_0/iface_fuzzer/AndroidTest.xml~HEAD
similarity index 75%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/bluetooth/a2dp/V1_0/iface_fuzzer/AndroidTest.xml~HEAD
index 98c1b5f..5172d50 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/bluetooth/a2dp/V1_0/iface_fuzzer/AndroidTest.xml~HEAD
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalBluetoothA2DpV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalBluetoothA2DpV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.bluetooth.a2dp@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/broadcastradio/V2_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/broadcastradio/V2_0/iface_fuzzer/Android.mk
index e2179b4..9237402 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/broadcastradio/V2_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalBroadcastradioV2_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/broadcastradio/V2_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/broadcastradio/V2_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..811b31b 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/broadcastradio/V2_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalBroadcastradioV2_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalBroadcastradioV2_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.broadcastradio@2.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/camera/device/V3_3/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/camera/device/V3_3/iface_fuzzer/Android.mk
index e2179b4..7b6fb09 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/camera/device/V3_3/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalCameraDeviceV3_3IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/camera/device/V3_3/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/camera/device/V3_3/iface_fuzzer/AndroidTest.xml
index 98c1b5f..0a8bd74 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/camera/device/V3_3/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalCameraDeviceV3_3IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalCameraDeviceV3_3IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.camera.device@3.3"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/camera/device/V3_4/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/camera/device/V3_4/iface_fuzzer/Android.mk
index e2179b4..7bac5a0 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/camera/device/V3_4/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalCameraDeviceV3_4IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/camera/device/V3_4/iface_fuzzer/AndroidTest.xml
similarity index 76%
rename from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
rename to config/camera/device/V3_4/iface_fuzzer/AndroidTest.xml
index 98c1b5f..cc16229 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/camera/device/V3_4/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalCameraDeviceV3_4IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalCameraDeviceV3_4IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.camera.device@3.4"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/camera/metadata/V3_3/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/camera/metadata/V3_3/iface_fuzzer/Android.mk
index e2179b4..8bd1244 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/camera/metadata/V3_3/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalCameraMetadataV3_3IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/camera/metadata/V3_3/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/camera/metadata/V3_3/iface_fuzzer/AndroidTest.xml
index 98c1b5f..ca91e1d 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/camera/metadata/V3_3/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalCameraMetadataV3_3IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalCameraMetadataV3_3IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.camera.metadata@3.3"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/cas/V1_0/iface_fuzzer/AndroidTest.xml b/config/cas/V1_0/iface_fuzzer/AndroidTest.xml
index 0538003..49d3161 100644
--- a/config/cas/V1_0/iface_fuzzer/AndroidTest.xml
+++ b/config/cas/V1_0/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalCasV1_0IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.cas@1.0"/>
diff --git a/config/cas/native/V1_0/iface_fuzzer/AndroidTest.xml b/config/cas/native/V1_0/iface_fuzzer/AndroidTest.xml
index b1dc632..e3c66a8 100644
--- a/config/cas/native/V1_0/iface_fuzzer/AndroidTest.xml
+++ b/config/cas/native/V1_0/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalCasNativeV1_0IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.cas.native@1.0"/>
diff --git a/config/configstore/V1_1/iface_fuzzer/AndroidTest.xml b/config/configstore/V1_1/iface_fuzzer/AndroidTest.xml
index b8cecb1..91c89ab 100644
--- a/config/configstore/V1_1/iface_fuzzer/AndroidTest.xml
+++ b/config/configstore/V1_1/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalConfigstoreV1_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.configstore@1.1"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/confirmationui/V1_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/confirmationui/V1_0/iface_fuzzer/Android.mk
index e2179b4..3727175 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/confirmationui/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalConfirmationuiV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/confirmationui/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/confirmationui/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..f3097b1 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/confirmationui/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalConfirmationuiV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalConfirmationuiV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.confirmationui@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/drm/V1_1/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/drm/V1_1/iface_fuzzer/Android.mk
index e2179b4..0e071e3 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/drm/V1_1/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalDrmV1_1IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/drm/V1_1/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/drm/V1_1/iface_fuzzer/AndroidTest.xml
index 98c1b5f..f5a82be 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/drm/V1_1/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalDrmV1_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalDrmV1_1IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.drm@1.1"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/gnss/V1_1/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/gnss/V1_1/iface_fuzzer/Android.mk
index e2179b4..aed5e68 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/gnss/V1_1/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalGnssV1_1IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/gnss/V1_1/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/gnss/V1_1/iface_fuzzer/AndroidTest.xml
index 98c1b5f..3690fec 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/gnss/V1_1/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalGnssV1_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalGnssV1_1IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.gnss@1.1"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/graphics/common/V1_1/iface_fuzzer/AndroidTest.xml b/config/graphics/common/V1_1/iface_fuzzer/AndroidTest.xml
index 117db90..16b8363 100644
--- a/config/graphics/common/V1_1/iface_fuzzer/AndroidTest.xml
+++ b/config/graphics/common/V1_1/iface_fuzzer/AndroidTest.xml
@@ -3,10 +3,10 @@
      Do not edit manually.
 -->
 <configuration description="Config for VtsHalGraphicsCommonV1_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsCommonV1_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.graphics.common@1.1"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/graphics/composer/V2_2/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/graphics/composer/V2_2/iface_fuzzer/Android.mk
index e2179b4..a01fab5 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/graphics/composer/V2_2/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalGraphicsComposerV2_2IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/graphics/composer/V2_2/iface_fuzzer/AndroidTest.xml
similarity index 75%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/graphics/composer/V2_2/iface_fuzzer/AndroidTest.xml
index 98c1b5f..713f3a2 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/graphics/composer/V2_2/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalGraphicsComposerV2_2IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalGraphicsComposerV2_2IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.graphics.composer@2.2"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/graphics/mapper/V2_1/iface_fuzzer/AndroidTest.xml b/config/graphics/mapper/V2_1/iface_fuzzer/AndroidTest.xml
index f875376..e515199 100644
--- a/config/graphics/mapper/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/graphics/mapper/V2_1/iface_fuzzer/AndroidTest.xml
@@ -3,10 +3,10 @@
      Do not edit manually.
 -->
 <configuration description="Config for VtsHalGraphicsMapperV2_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalGraphicsMapperV2_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.graphics.mapper@2.1"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/health/V2_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/health/V2_0/iface_fuzzer/Android.mk
index e2179b4..bfac587 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/health/V2_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalHealthV2_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/health/V2_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/health/V2_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..291f122 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/health/V2_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalHealthV2_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalHealthV2_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.health@2.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/keymaster/V4_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/keymaster/V4_0/iface_fuzzer/Android.mk
index e2179b4..00e83a9 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/keymaster/V4_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalKeymasterV4_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/keymaster/V4_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/keymaster/V4_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..a86cc9f 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/keymaster/V4_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalKeymasterV4_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalKeymasterV4_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.keymaster@4.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/media/bufferpool/V1_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/media/bufferpool/V1_0/iface_fuzzer/Android.mk
index e2179b4..80019b9 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/media/bufferpool/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalMediaBufferpoolV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/media/bufferpool/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/media/bufferpool/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..5b416d5 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/media/bufferpool/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalMediaBufferpoolV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalMediaBufferpoolV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.media.bufferpool@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/neuralnetworks/V1_0/iface_fuzzer/AndroidTest.xml b/config/neuralnetworks/V1_0/iface_fuzzer/AndroidTest.xml
index 90d61b0..6f3fd6a 100644
--- a/config/neuralnetworks/V1_0/iface_fuzzer/AndroidTest.xml
+++ b/config/neuralnetworks/V1_0/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalNeuralnetworksV1_0IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.neuralnetworks@1.0"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/neuralnetworks/V1_1/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/neuralnetworks/V1_1/iface_fuzzer/Android.mk
index e2179b4..2aef785 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/neuralnetworks/V1_1/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalNeuralnetworksV1_1IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/neuralnetworks/V1_1/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/neuralnetworks/V1_1/iface_fuzzer/AndroidTest.xml
index 98c1b5f..11a73c5 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/neuralnetworks/V1_1/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalNeuralnetworksV1_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalNeuralnetworksV1_1IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.neuralnetworks@1.1"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/nfc/V1_1/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/nfc/V1_1/iface_fuzzer/Android.mk
index e2179b4..1487aa7 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/nfc/V1_1/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalNfcV1_1IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/nfc/V1_1/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/nfc/V1_1/iface_fuzzer/AndroidTest.xml
index 98c1b5f..4708644 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/nfc/V1_1/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalNfcV1_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalNfcV1_1IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.nfc@1.1"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/oemlock/V1_0/iface_fuzzer/AndroidTest.xml b/config/oemlock/V1_0/iface_fuzzer/AndroidTest.xml
index 0eff014..f2b972a 100644
--- a/config/oemlock/V1_0/iface_fuzzer/AndroidTest.xml
+++ b/config/oemlock/V1_0/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalOemlockV1_0IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.oemlock@1.0"/>
diff --git a/config/power/V1_1/iface_fuzzer/AndroidTest.xml b/config/power/V1_1/iface_fuzzer/AndroidTest.xml
index d7c88c1..e0909c4 100644
--- a/config/power/V1_1/iface_fuzzer/AndroidTest.xml
+++ b/config/power/V1_1/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalPowerV1_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.power@1.1"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/power/V1_2/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/power/V1_2/iface_fuzzer/Android.mk
index e2179b4..d228ac9 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/power/V1_2/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalPowerV1_2IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/power/V1_2/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/power/V1_2/iface_fuzzer/AndroidTest.xml
index 98c1b5f..353624c 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/power/V1_2/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalPowerV1_2IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalPowerV1_2IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.power@1.2"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/radio/V1_2/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/radio/V1_2/iface_fuzzer/Android.mk
index e2179b4..9c6152c 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/radio/V1_2/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalRadioV1_2IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/radio/V1_2/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/radio/V1_2/iface_fuzzer/AndroidTest.xml
index 98c1b5f..747ff61 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/radio/V1_2/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalRadioV1_2IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalRadioV1_2IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.radio@1.2"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/radio/config/V1_0/iface_fuzzer/Android.mk
similarity index 79%
rename from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
rename to config/radio/config/V1_0/iface_fuzzer/Android.mk
index e2179b4..2ef395f 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/radio/config/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalRadioConfigV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/radio/config/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/radio/config/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..f54b9fd 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/radio/config/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalRadioConfigV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalRadioConfigV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.radio.config@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/secure_element/V1_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/secure_element/V1_0/iface_fuzzer/Android.mk
index e2179b4..8d9ca87 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/secure_element/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalSecure_ElementV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/secure_element/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/secure_element/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..14d5a91 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/secure_element/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalSecure_ElementV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalSecure_ElementV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.secure_element@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/soundtrigger/V2_1/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/soundtrigger/V2_1/iface_fuzzer/Android.mk
index e2179b4..b5568aa 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/soundtrigger/V2_1/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalSoundtriggerV2_1IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/soundtrigger/V2_1/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/soundtrigger/V2_1/iface_fuzzer/AndroidTest.xml
index 98c1b5f..84f3521 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/soundtrigger/V2_1/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalSoundtriggerV2_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalSoundtriggerV2_1IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.soundtrigger@2.1"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/thermal/V1_1/iface_fuzzer/AndroidTest.xml b/config/thermal/V1_1/iface_fuzzer/AndroidTest.xml
index c9cb843..e7ea0f8 100644
--- a/config/thermal/V1_1/iface_fuzzer/AndroidTest.xml
+++ b/config/thermal/V1_1/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalThermalV1_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.thermal@1.1"/>
diff --git a/config/usb/V1_1/iface_fuzzer/AndroidTest.xml b/config/usb/V1_1/iface_fuzzer/AndroidTest.xml
index a82b4c1..071893d 100644
--- a/config/usb/V1_1/iface_fuzzer/AndroidTest.xml
+++ b/config/usb/V1_1/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalUsbV1_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.usb@1.1"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/usb/gadget/V1_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/usb/gadget/V1_0/iface_fuzzer/Android.mk
index e2179b4..e167000 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/usb/gadget/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalUsbGadgetV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/usb/gadget/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/usb/gadget/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..b600e84 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/usb/gadget/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalUsbGadgetV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalUsbGadgetV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.usb.gadget@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/vibrator/V1_1/iface_fuzzer/AndroidTest.xml b/config/vibrator/V1_1/iface_fuzzer/AndroidTest.xml
index 1ec5566..b745be0 100644
--- a/config/vibrator/V1_1/iface_fuzzer/AndroidTest.xml
+++ b/config/vibrator/V1_1/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalVibratorV1_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.vibrator@1.1"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/vibrator/V1_2/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/vibrator/V1_2/iface_fuzzer/Android.mk
index e2179b4..dd26d03 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/vibrator/V1_2/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalVibratorV1_2IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/vibrator/V1_2/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/vibrator/V1_2/iface_fuzzer/AndroidTest.xml
index 98c1b5f..1aeddf5 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/vibrator/V1_2/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalVibratorV1_2IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalVibratorV1_2IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.vibrator@1.2"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/weaver/V1_0/iface_fuzzer/AndroidTest.xml b/config/weaver/V1_0/iface_fuzzer/AndroidTest.xml
index 69a6267..884d85b 100644
--- a/config/weaver/V1_0/iface_fuzzer/AndroidTest.xml
+++ b/config/weaver/V1_0/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalWeaverV1_0IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.weaver@1.0"/>
diff --git a/config/wifi/V1_1/iface_fuzzer/AndroidTest.xml b/config/wifi/V1_1/iface_fuzzer/AndroidTest.xml
index acbdda5..020f68e 100644
--- a/config/wifi/V1_1/iface_fuzzer/AndroidTest.xml
+++ b/config/wifi/V1_1/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalWifiV1_1IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.wifi@1.1"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/wifi/V1_2/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/wifi/V1_2/iface_fuzzer/Android.mk
index e2179b4..5f4431a 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/wifi/V1_2/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalWifiV1_2IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/wifi/V1_2/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/wifi/V1_2/iface_fuzzer/AndroidTest.xml
index 98c1b5f..e54f774 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/wifi/V1_2/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalWifiV1_2IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalWifiV1_2IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.wifi@1.2"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/wifi/hostapd/V1_0/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/wifi/hostapd/V1_0/iface_fuzzer/Android.mk
index e2179b4..1d664e3 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/wifi/hostapd/V1_0/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalWifiHostapdV1_0IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/wifi/hostapd/V1_0/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/wifi/hostapd/V1_0/iface_fuzzer/AndroidTest.xml
index 98c1b5f..91185eb 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/wifi/hostapd/V1_0/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalWifiHostapdV1_0IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalWifiHostapdV1_0IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.wifi.hostapd@1.0"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/config/wifi/offload/V1_0/iface_fuzzer/AndroidTest.xml b/config/wifi/offload/V1_0/iface_fuzzer/AndroidTest.xml
index 4611de8..c684a48 100644
--- a/config/wifi/offload/V1_0/iface_fuzzer/AndroidTest.xml
+++ b/config/wifi/offload/V1_0/iface_fuzzer/AndroidTest.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="VtsHalWifiOffloadV1_0IfaceFuzzer"/>
         <option name="hal-hidl-package-name" value="android.hardware.wifi.offload@1.0"/>
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk b/config/wifi/supplicant/V1_1/iface_fuzzer/Android.mk
similarity index 79%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
copy to config/wifi/supplicant/V1_1/iface_fuzzer/Android.mk
index e2179b4..235648c 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/Android.mk
+++ b/config/wifi/supplicant/V1_1/iface_fuzzer/Android.mk
@@ -5,5 +5,5 @@
 
 include $(CLEAR_VARS)
 
-LOCAL_MODULE := VtsHalAutomotiveVehicleV2_1IfaceFuzzer
+LOCAL_MODULE := VtsHalWifiSupplicantV1_1IfaceFuzzer
 include test/vts/tools/build/Android.host_config.mk
diff --git a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml b/config/wifi/supplicant/V1_1/iface_fuzzer/AndroidTest.xml
similarity index 76%
copy from config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
copy to config/wifi/supplicant/V1_1/iface_fuzzer/AndroidTest.xml
index 98c1b5f..ab57785 100644
--- a/config/automotive/vehicle/V2_1/iface_fuzzer/AndroidTest.xml
+++ b/config/wifi/supplicant/V1_1/iface_fuzzer/AndroidTest.xml
@@ -2,14 +2,14 @@
 <!-- This file was auto-generated by test/vts-testcase/fuzz/script/update_makefiles.py.
      Do not edit manually.
 -->
-<configuration description="Config for VtsHalAutomotiveVehicleV2_1IfaceFuzzer test cases">
-    <option name="config-descriptor:metadata" key="plan" value="vts-misc" />
+<configuration description="Config for VtsHalWifiSupplicantV1_1IfaceFuzzer test cases">
+    <option name="config-descriptor:metadata" key="plan" value="vts-staging-fuzz" />
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="IfaceFuzzerTest.push"/>
     </target_preparer>
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
-        <option name="test-module-name" value="VtsHalAutomotiveVehicleV2_1IfaceFuzzer"/>
-        <option name="hal-hidl-package-name" value="android.hardware.automotive.vehicle@2.1"/>
+        <option name="test-module-name" value="VtsHalWifiSupplicantV1_1IfaceFuzzer"/>
+        <option name="hal-hidl-package-name" value="android.hardware.wifi.supplicant@1.1"/>
         <option name="test-case-path" value="vts/testcases/fuzz/template/iface_fuzzer_test/iface_fuzzer_test"/>
         <option name="test-timeout" value="3h"/>
     </test>
diff --git a/iface_fuzzer/OWNERS b/iface_fuzzer/OWNERS
new file mode 100644
index 0000000..507c77b
--- /dev/null
+++ b/iface_fuzzer/OWNERS
@@ -0,0 +1,2 @@
+jiwonshin@google.com
+yim@google.com
diff --git a/iface_fuzzer/ProtoFuzzerMain.cpp b/iface_fuzzer/ProtoFuzzerMain.cpp
index 5310507..0c4a8c9 100644
--- a/iface_fuzzer/ProtoFuzzerMain.cpp
+++ b/iface_fuzzer/ProtoFuzzerMain.cpp
@@ -14,10 +14,12 @@
  * limitations under the License.
  */
 
+#include "FuzzerInternal.h"
 #include "ProtoFuzzerMutator.h"
 
 #include "test/vts/proto/ComponentSpecificationMessage.pb.h"
 
+#include <signal.h>
 #include <unistd.h>
 
 #include <cstdlib>
@@ -33,6 +35,17 @@
 using std::unique_ptr;
 using std::vector;
 
+// Executed when fuzzer raises SIGABRT signal. This function calls
+// the signal handler from the libfuzzer library.
+extern "C" void sig_handler(int signo) {
+  if (signo == SIGABRT) {
+    cerr << "SIGABRT noticed, please refer to device logcat for the root cause."
+         << endl;
+    fuzzer::Fuzzer::StaticCrashSignalCallback();
+    exit(1);
+  }
+}
+
 namespace android {
 namespace vts {
 namespace fuzzer {
@@ -96,6 +109,9 @@
   runner->Init(params.target_iface_, params.binder_mode_);
   // Register atexit handler after all static objects' initialization.
   std::atexit(AtExit);
+  // Register signal handler for SIGABRT.
+  signal(SIGABRT, sig_handler);
+
   return 0;
 }
 
@@ -112,16 +128,62 @@
   } else {
     mutator->Mutate(runner->GetOpenedIfaces(), &exec_spec);
   }
-  return ToArray(data, size, &exec_spec);
+
+  if (static_cast<size_t>(exec_spec.ByteSize()) > max_size) {
+    cerr << "execution specification message exceeded maximum size." << endl;
+    cerr << max_size << endl;
+    cerr << static_cast<size_t>(exec_spec.ByteSize()) << endl;
+    std::abort();
+  }
+  return ToArray(data, max_size, &exec_spec);
 }
 
-// TODO(trong): implement a meaningful cross-over mechanism.
-size_t LLVMFuzzerCustomCrossOver(const uint8_t *data1, size_t size1,
-                                 const uint8_t *data2, size_t size2,
-                                 uint8_t *out, size_t max_out_size,
-                                 unsigned int seed) {
-  memcpy(out, data1, size1);
-  return size1;
+extern "C" size_t LLVMFuzzerCustomCrossOver(const uint8_t *data1, size_t size1,
+                                            const uint8_t *data2, size_t size2,
+                                            uint8_t *out, size_t max_out_size,
+                                            unsigned int seed) {
+  ExecSpec exec_spec1{};
+  FromArray(data1, size1, &exec_spec1);
+  int function_call_size1 = exec_spec1.function_call_size();
+
+  ExecSpec exec_spec2{};
+  FromArray(data2, size2, &exec_spec2);
+  int function_call_size2 = exec_spec2.function_call_size();
+
+  if (function_call_size1 != static_cast<int>(params.exec_size_)) {
+    if (function_call_size2 != static_cast<int>(params.exec_size_)) {
+      cerr << "Both messages were invalid, aborting." << endl;
+      std::abort();
+    } else {
+      cerr << "Message 1 was invalid, copying message 2." << endl;
+      memcpy(out, data2, size2);
+      return size2;
+    }
+  } else if (function_call_size2 != static_cast<int>(params.exec_size_)) {
+    cerr << "Message 2 was invalid, copying message 1." << endl;
+    memcpy(out, data1, size1);
+    return size1;
+  }
+
+  ExecSpec exec_spec_out{};
+  for (int i = 0; i < static_cast<int>(params.exec_size_); i++) {
+    FuncCall temp;
+    int dice = rand() % 2;
+    if (dice == 0) {
+      temp = exec_spec1.function_call(i);
+    } else {
+      temp = exec_spec2.function_call(i);
+    }
+    exec_spec_out.add_function_call()->CopyFrom(temp);
+  }
+
+  if (static_cast<size_t>(exec_spec_out.ByteSize()) > max_out_size) {
+    cerr << "execution specification message exceeded maximum size." << endl;
+    cerr << max_out_size << endl;
+    cerr << static_cast<size_t>(exec_spec_out.ByteSize()) << endl;
+    std::abort();
+  }
+  return ToArray(out, max_out_size, &exec_spec_out);
 }
 
 extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
diff --git a/kernel/OWNERS b/kernel/OWNERS
new file mode 100644
index 0000000..01bcfad
--- /dev/null
+++ b/kernel/OWNERS
@@ -0,0 +1,3 @@
+jiwonshin@google.com
+yim@google.com
+yuexima@google.com
diff --git a/kernel/__init__.py b/kernel/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/kernel/__init__.py
diff --git a/kernel/syzkaller/Android.mk b/kernel/syzkaller/Android.mk
new file mode 100644
index 0000000..01f29b0
--- /dev/null
+++ b/kernel/syzkaller/Android.mk
@@ -0,0 +1,21 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+LOCAL_PATH := $(call my-dir)
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := VtsKernelFuzzTest
+include test/vts/tools/build/Android.host_config.mk
\ No newline at end of file
diff --git a/kernel/syzkaller/AndroidTest.xml b/kernel/syzkaller/AndroidTest.xml
new file mode 100644
index 0000000..3863ab6
--- /dev/null
+++ b/kernel/syzkaller/AndroidTest.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2018 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+-->
+<configuration description="Config for VTS Fuzz-Kernel test case">
+    <option name="config-descriptor:metadata" key="plan" value="vts-fuzz-kernel" />
+    <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
+        <option name="test-module-name" value="VtsKernelFuzzTest"/>
+        <option name="test-case-path" value="vts/testcases/fuzz/kernel/syzkaller/syzkaller_test" />
+    </test>
+</configuration>
diff --git a/kernel/syzkaller/__init__.py b/kernel/syzkaller/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/kernel/syzkaller/__init__.py
diff --git a/kernel/syzkaller/environment_variables.py b/kernel/syzkaller/environment_variables.py
new file mode 100644
index 0000000..3cd57a4
--- /dev/null
+++ b/kernel/syzkaller/environment_variables.py
@@ -0,0 +1,20 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+syzkaller_dir = 'syzkaller'  # tmp/tmp8214/syzkaller
+syzkaller_bin_dir = 'syzkaller/bin'  # tmp/tmp8214/syzkaller/bin
+syzkaller_work_dir = 'syzkaller_work'  # tmp/tmp8214/syzkaller_work
+template_cfg = 'syzkaller_template.cfg'  # tmp/tmp8214/syzkaller_template.cfg
diff --git a/kernel/syzkaller/syzkaller_test.py b/kernel/syzkaller/syzkaller_test.py
new file mode 100644
index 0000000..d951592
--- /dev/null
+++ b/kernel/syzkaller/syzkaller_test.py
@@ -0,0 +1,165 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import logging
+import os
+import shutil
+import tempfile
+
+import environment_variables as env
+import syzkaller_test_case
+
+from vts.runners.host import asserts
+from vts.runners.host import base_test
+from vts.runners.host import config_parser
+from vts.runners.host import keys
+from vts.runners.host import test_runner
+from vts.utils.python.common import cmd_utils
+from vts.utils.python.controllers import adb
+from vts.utils.python.controllers import android_device
+from vts.utils.python.gcs import gcs_api_utils
+
+
+class SyzkallerTest(base_test.BaseTestClass):
+    """Runs Syzkaller tests on target."""
+
+    start_vts_agents = False
+
+    def setUpClass(self):
+        """Creates a remote shell instance, and copies data files.
+
+        Attributes:
+            _env: dict, a mapping from key to environment path of this test.
+            _gcs_api_utils: a GcsApiUtils object used for uploading logs.
+            _dut: an android device controller object used for getting device info.
+        """
+
+        required_params = [
+            keys.ConfigKeys.IKEY_SERVICE_JSON_PATH,
+            keys.ConfigKeys.IKEY_FUZZING_GCS_BUCKET_NAME,
+            keys.ConfigKeys.IKEY_SYZKALLER_PACKAGES_PATH,
+            keys.ConfigKeys.IKEY_SYZKALLER_TEMPLATE_PATH
+        ]
+        self.getUserParams(required_params)
+
+        _temp_dir = tempfile.mkdtemp()
+        self._env = dict()
+        self._env['temp_dir'] = _temp_dir
+        self._env['syzkaller_dir'] = os.path.join(_temp_dir, env.syzkaller_dir)
+        self._env['syzkaller_bin_dir'] = os.path.join(_temp_dir,
+                                                      env.syzkaller_bin_dir)
+        self._env['syzkaller_work_dir'] = os.path.join(_temp_dir,
+                                                       env.syzkaller_work_dir)
+        self._env['template_cfg'] = os.path.join(_temp_dir, env.template_cfg)
+
+        self._gcs_api_utils = gcs_api_utils.GcsApiUtils(
+            self.service_key_json_path, self.fuzzing_gcs_bucket_name)
+        self._dut = self.android_devices[0]
+
+    def FetchSyzkaller(self):
+        """Fetch Syzkaller program from x20 and make sure files are executable."""
+        try:
+            logging.info('Fetching Syzkaller program.')
+            shutil.copytree(self.syzkaller_packages_path,
+                            self._env['syzkaller_dir'])
+            logging.info('Fetching Syzkaller template configuration.')
+            shutil.copy(self.syzkaller_template_path, self._env['temp_dir'])
+        except IOError, e:
+            logging.exception(e)
+            self.skipAllTests(
+                'Syzkaller program is not available. Skipping all tests.')
+
+        for root, dirs, files in os.walk(self._env['syzkaller_bin_dir']):
+            for filepath in files:
+                os.chmod(os.path.join(root, filepath), 0755)
+
+    def CreateTestCases(self):
+        """Create syzkaller test cases.
+
+        Returns:
+            test_cases, list, the list of test_cases for this test.
+        """
+        test_cases = []
+        test_cases.append(
+            syzkaller_test_case.SyzkallerTestCase(self._env, 'linux/arm64',
+                                                  self._dut.serial, 'adb',
+                                                  'false', 12))
+        return test_cases
+
+    def RunTestCase(self, test_case):
+        """Run a syzkaller test case.
+
+        Args:
+            test_case: SyzkallerTestCase object, the test case to run.
+        """
+        test_command = test_case.GetRunCommand()
+        stdout, stderr, err_code = cmd_utils.ExecuteOneShellCommand(
+            test_command, timeout=18000)
+        if err_code:
+            logging.error(stderr)
+        else:
+            logging.info(stdout)
+        self.ReportTestCase(test_case)
+
+    def ReportTestCase(self, test_case):
+        """Asserts the result of the test case and uploads report to GCS.
+
+        Args:
+            test_case: SyzkallerTestCase object, the test case to report.
+        """
+        self.AssertTestCaseResult(test_case)
+        self._gcs_api_utils.UploadDir(test_case._work_dir_path,
+                                      'kernelfuzz_reports')
+
+    def AssertTestCaseResult(self, test_case):
+        """Asserts that test case finished as expected.
+
+        If crash reports were generated during the test, reports test as failure.
+        If crash reports were not generated during the test, reports test as success.
+
+        Args:
+            test_case: SyzkallerTestCase object, the test case to assert
+                       as failure or success.
+        """
+        logging.info('Test case results.')
+        crash_dir = os.path.join(test_case._work_dir_path, 'crashes')
+        if os.listdir(crash_dir) == []:
+            logging.info('%s did not cause crash in our device.',
+                         test_case._test_name)
+        else:
+            asserts.fail('%s caused crash in our device.',
+                         test_case._test_name)
+
+    def tearDownClass(self):
+        """Removes the temporary directory used for Syzkaller."""
+        logging.debug('Temporary directory %s is being deleted',
+                      self._env['temp_dir'])
+        try:
+            shutil.rmtree(self._env['temp_dir'])
+        except OSError as e:
+            logging.exception(e)
+
+    def generateKernelFuzzerTests(self):
+        """Runs kernel fuzzer tests."""
+        self.FetchSyzkaller()
+        self.runGeneratedTests(
+            test_func=self.RunTestCase,
+            settings=self.CreateTestCases(),
+            name_func=lambda x: x._test_name)
+
+
+if __name__ == '__main__':
+    test_runner.main()
diff --git a/kernel/syzkaller/syzkaller_test_case.py b/kernel/syzkaller/syzkaller_test_case.py
new file mode 100644
index 0000000..876fbf6
--- /dev/null
+++ b/kernel/syzkaller/syzkaller_test_case.py
@@ -0,0 +1,115 @@
+#
+# Copyright (C) 2018 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+import logging
+import os
+import time
+
+import environment_variables as env
+
+
+class SyzkallerTestCase(object):
+    """Represents syzkaller test case.
+
+    Attributes:
+        _env: dict, inverted map of environment varialbes for this test.
+        _device_target: string, OS of the target device.
+        _device_code: string, serial number of the target device.
+        _device_type: string, type of the target device.
+        _reproduce: boolean, whether or not to reproduce if a crash is found.
+        _http: integer, path to localhost where the test information will be shown.
+        _procs: integer, number of processes this test case will use if available.
+        _test_name: string, the unique name for this test case.
+        _work_dir_path: string, path to the work directory for this test case.
+        _config_file_path: string, path to the config file for this test case.
+    """
+
+    def __init__(self, env, device_target, device_code, device_type, reproduce,
+                 procs):
+        self._env = env
+        self._device_target = device_target
+        self._device_code = device_code
+        self._device_type = device_type
+        self._reproduce = reproduce
+        self._http = 'localhost:50000'
+        self._procs = procs
+        self._test_name = self.GenerateTestName()
+        self._work_dir_path = self.GenerateCorpusDir()
+        self._config_file_path = self.GenerateConfigFile()
+
+    def GenerateTestName(self):
+        """Uses device code and time to create unique name
+
+        Returns:
+            test_name, string, the unique test name for this test case.
+        """
+        test_name = '%s_%s_%d' % (time.strftime('%Y-%m-%d'), self._device_code,
+                                  int(time.time()))
+        return str(test_name)
+
+    def GenerateCorpusDir(self):
+        """Creates working directory for this test case.
+
+        Returns:
+            work_dir_path, string, path to the working directory for this test case.
+        """
+        work_dir_path = os.path.join(self._env['syzkaller_work_dir'],
+                                     self._test_name)
+        if not os.path.exists(work_dir_path):
+            os.makedirs(work_dir_path)
+        return work_dir_path
+
+    def GenerateConfigFile(self):
+        """Creates configuration file for this test case.
+
+        Returns:
+            config_file_path, string, path to the configuration file for this test case.
+        """
+
+        # read template config
+        with open(self._env['template_cfg'], 'r') as temp:
+            template_cfg = str(temp.read())
+
+        # fill out template
+        template_cfg = template_cfg.replace('{device_target}',
+                                            self._device_target)
+        template_cfg = template_cfg.replace('{reproduce}', self._reproduce)
+        template_cfg = template_cfg.replace('{work_dir_path}',
+                                            self._work_dir_path)
+        template_cfg = template_cfg.replace('{http}', self._http)
+        template_cfg = template_cfg.replace('{syzkaller_dir_path}',
+                                            self._env['syzkaller_dir'])
+        template_cfg = template_cfg.replace('{device_code}', self._device_code)
+        template_cfg = template_cfg.replace('{device_type}', self._device_type)
+        template_cfg = template_cfg.replace('{procs}', str(self._procs))
+
+        # save config file
+        config_file_path = self._work_dir_path + str('.cfg')
+        with open(config_file_path, 'w') as config_file:
+            config_file.write(template_cfg)
+        return config_file_path
+
+    def GetRunCommand(self):
+        """Creates test run command for this case.
+
+        Returns:
+            test_command, string, test run command for this test case.
+        """
+        syz_manager_path = os.path.join(self._env['syzkaller_bin_dir'],
+                                        'syz-manager')
+        test_command = '%s -config=%s' % (syz_manager_path,
+                                          self._config_file_path)
+        return test_command
diff --git a/script/config/template/template.xml b/script/config/template/template.xml
index 1b25b0f..8102085 100644
--- a/script/config/template/template.xml
+++ b/script/config/template/template.xml
@@ -7,7 +7,6 @@
     <target_preparer class="com.android.compatibility.common.tradefed.targetprep.VtsFilePusher">
         <option name="push-group" value="{TEST_TYPE_CAMEL}Test.push"/>
     </target_preparer>
-    <multi_target_preparer class="com.android.tradefed.targetprep.VtsPythonVirtualenvPreparer" />
     <test class="com.android.tradefed.testtype.VtsMultiDeviceTest">
         <option name="test-module-name" value="{TEST_NAME}"/>
         <option name="hal-hidl-package-name" value="android.hardware.{HAL_NAME}@{HAL_VERSION}"/>
diff --git a/script/update_configs.py b/script/update_configs.py
index ef0fd0c..08b3701 100644
--- a/script/update_configs.py
+++ b/script/update_configs.py
@@ -24,12 +24,23 @@
 
 
 Usage:
-    python test/vts-testcase/fuzz/update_makefiles.py
+    python test/vts-testcase/fuzz/script/update_configs.py
 """
 
+import os
+import sys
+
 from config.config_gen import ConfigGen
 
+ANDROID_BUILD_TOP = os.environ.get('ANDROID_BUILD_TOP')
+if not ANDROID_BUILD_TOP:
+    print 'Run "lunch" command first.'
+    sys.exit(1)
+
 if __name__ == '__main__':
     print 'Updating config files.'
+    HAL_SCRIPT_DIR = os.path.join(ANDROID_BUILD_TOP, 'test', 'vts-testcase',
+                                  'hal', 'script')
+    sys.path.append(HAL_SCRIPT_DIR)
     config_gen = ConfigGen()
     config_gen.UpdateFuzzerConfigs()
diff --git a/template/func_fuzzer_test/func_fuzzer_test.py b/template/func_fuzzer_test/func_fuzzer_test.py
index b4fbf04..c204caf 100644
--- a/template/func_fuzzer_test/func_fuzzer_test.py
+++ b/template/func_fuzzer_test/func_fuzzer_test.py
@@ -17,12 +17,14 @@
 
 import logging
 import os
+import tempfile
 
 from vts.runners.host import keys
 from vts.runners.host import test_runner
 from vts.utils.python.controllers import adb
 from vts.utils.python.controllers import android_device
 from vts.utils.python.common import vts_spec_utils
+from vts.utils.python.fuzzer import corpus_manager
 
 from vts.testcases.fuzz.template.libfuzzer_test import libfuzzer_test_config as config
 from vts.testcases.fuzz.template.libfuzzer_test import libfuzzer_test
@@ -36,6 +38,7 @@
         _dut: AndroidDevice, the device under test as config.
         _test_cases: LibFuzzerTestCase list, list of test cases to run.
         _vts_spec_parser: VtsSpecParser, used to parse .vts files.
+        _temp_dir: temporary directory, used as buffer between target and GCS.
     """
 
     def setUpClass(self):
@@ -50,11 +53,12 @@
         logging.info('%s: %s', keys.ConfigKeys.IKEY_HAL_HIDL_PACKAGE_NAME,
                      self.hal_hidl_package_name)
 
-        self._dut = self.registerController(android_device, False)[0]
-        self._dut.startAdbLogcat()
+        self._dut = self.android_devices[0]
         self._dut.adb.shell('mkdir %s -p' % config.FUZZER_TEST_DIR)
         self._vts_spec_parser = vts_spec_utils.VtsSpecParser(
             self.data_file_path)
+        self._temp_dir = tempfile.mkdtemp()
+        self._corpus_manager = corpus_manager.CorpusManager(self.user_params, self._dut)
 
     def _RegisteredInterfaces(self, hal_package):
         """Returns a list of registered interfaces for a given hal package.
@@ -78,7 +82,7 @@
         vts_spec_name = vts_spec_name.replace('.vts', '')
         bin_name = hal_package + '-vts.func_fuzzer.' + vts_spec_name
         bin_host_path = os.path.join(self.data_file_path, 'DATA', 'bin',
-                                       bin_name)
+                                     bin_name)
         return str(bin_host_path)
 
     def _CreateTestCasesFromSpec(self, hal_package, vts_spec_name,
@@ -111,8 +115,8 @@
         hal_package = self.hal_hidl_package_name
         hal_name, hal_version = vts_spec_utils.HalPackageToNameAndVersion(
             hal_package)
-        vts_spec_names = self._vts_spec_parser.VtsSpecNames(hal_name,
-                                                            hal_version)
+        vts_spec_names = self._vts_spec_parser.VtsSpecNames(
+            hal_name, hal_version)
 
         registered_interfaces = self._RegisteredInterfaces(
             self.hal_hidl_package_name)
diff --git a/template/iface_fuzzer_test/iface_fuzzer_test.py b/template/iface_fuzzer_test/iface_fuzzer_test.py
index 8dde8f4..35fd53b 100644
--- a/template/iface_fuzzer_test/iface_fuzzer_test.py
+++ b/template/iface_fuzzer_test/iface_fuzzer_test.py
@@ -111,7 +111,7 @@
             }
             libfuzzer_params = config.FUZZER_DEFAULT_PARAMS.copy()
             libfuzzer_params.update({
-                'max_len': 16777216,
+                'max_len': 67108864,
                 'max_total_time': 600,
             })
             bin_host_path = os.path.join(self.data_file_path, 'DATA', 'bin',
diff --git a/template/libfuzzer_test/libfuzzer_test.py b/template/libfuzzer_test/libfuzzer_test.py
index 20539ea..28137c5 100644
--- a/template/libfuzzer_test/libfuzzer_test.py
+++ b/template/libfuzzer_test/libfuzzer_test.py
@@ -17,6 +17,7 @@
 
 import logging
 import os
+import shutil
 
 from vts.runners.host import asserts
 from vts.runners.host import base_test
@@ -51,7 +52,7 @@
         logging.info('%s: %s', keys.ConfigKeys.IKEY_BINARY_TEST_SOURCE,
                      self.binary_test_source)
 
-        self._dut = self.registerController(android_device, False)[0]
+        self._dut = self.android_devices[0]
         self._dut.stop()
         self._dut.adb.shell('mkdir %s -p' % config.FUZZER_TEST_DIR)
 
@@ -79,24 +80,144 @@
             self.binary_test_source)
         return test_cases
 
-    # TODO: retrieve the corpus.
-    def CreateCorpusDir(self, test_case):
-        """Creates corpus directory on the target."""
-        corpus_dir = test_case.GetCorpusName()
-        self._dut.adb.shell('mkdir %s -p' % corpus_dir)
+    def CreateCorpusOut(self, test_case):
+        """Creates corpus output directory on the target.
+
+        Args:
+            test_case: LibFuzzerTestCase object, current test case.
+
+        Throws:
+            throws an AdbError when there is an error in adb operations.
+        """
+        corpus_out = test_case.GetCorpusOutDir()
+        self._dut.adb.shell('mkdir %s -p' % corpus_out)
+
+    def RetrieveCorpusSeed(self, test_case):
+        """Retrieves corpus seed directory from GCS to the target.
+
+        Args:
+            test_case: LibFuzzerTestCase object, current test case.
+
+        Throws:
+            throws an AdbError when there is an error in adb operations.
+
+        Returns:
+            inuse_seed, the file path of the inuse seed in GCS, if fetch succeeded.
+            None, otherwise.
+        """
+        inuse_seed = self._corpus_manager.FetchCorpusSeed(
+            test_case._test_name, self._temp_dir)
+        local_corpus_seed_dir = os.path.join(
+            self._temp_dir, '%s_corpus_seed' % test_case._test_name)
+        if os.path.exists(local_corpus_seed_dir) and os.listdir(
+                local_corpus_seed_dir):
+            self._dut.adb.push(local_corpus_seed_dir, config.FUZZER_TEST_DIR)
+        else:
+            corpus_seed = test_case.GetCorpusSeedDir()
+            self._dut.adb.shell('mkdir %s -p' % corpus_seed)
+        return inuse_seed
+
+    def AnalyzeGeneratedCorpus(self, test_case):
+        """Analyzes the generated corpus body.
+
+        Args:
+            test_case: LibFuzzerTestCase object.
+
+        Returns:
+            number of newly generated corpus strings, if the out directory exists.
+            0, otherwise.
+        """
+        logging.info('temporary directory for this test: %s', self._temp_dir)
+        pulled_corpus_out_dir = os.path.join(
+            self._temp_dir, os.path.basename(test_case.GetCorpusOutDir()))
+        if os.path.exists(pulled_corpus_out_dir):
+            logging.info('corpus out directory pulled from target: %s',
+                         pulled_corpus_out_dir)
+            pulled_corpus = os.listdir(pulled_corpus_out_dir)
+            logging.debug(pulled_corpus)
+            logging.info('generated corpus size: %d', len(pulled_corpus))
+            return len(pulled_corpus)
+        else:
+            logging.error('corput out directory does not exist on the host.')
+            return 0
+
+    def EvaluateTestcase(self, test_case, result, inuse_seed):
+        """Evaluates the test result and moves the used seed accordingly.
+
+        Args:
+            test_case: LibFuzzerTestCase object.
+            result: a result dict object returned by the adb shell command.
+            inuse_seed: the seed used as input to this test case.
+
+        Raises:
+            signals.TestFailure when the testcase failed.
+        """
+        return_codes = result.get('return_codes', None)
+        if return_codes == config.ExitCode.FUZZER_TEST_PASS:
+            logging.info(
+                'adb shell fuzzing command exited normally with exitcode %d.',
+                result['return_codes'])
+            if inuse_seed is not None:
+                self._corpus_manager.InuseToDest(test_case._test_name,
+                                                 inuse_seed, 'corpus_complete')
+        elif return_codes == config.ExitCode.FUZZER_TEST_FAIL:
+            logging.info(
+                'adb shell fuzzing command exited normally with exitcode %d.',
+                result['return_codes'])
+            if inuse_seed is not None:
+                self._corpus_manager.InuseToDest(test_case._test_name,
+                                                 inuse_seed, 'corpus_crash')
+        else:
+            logging.error('adb shell fuzzing command exited abnormally.')
+            if inuse_seed is not None:
+                self._corpus_manager.InuseToDest(test_case._test_name,
+                                                 inuse_seed, 'corpus_error')
 
     def RunTestcase(self, test_case):
         """Runs the given test case and asserts the result.
 
         Args:
-            test_case: LibFuzzerTestCase object
+            test_case: LibFuzzerTestCase object.
         """
         self.PushFiles(test_case.bin_host_path)
-        self.CreateCorpusDir(test_case)
-        fuzz_cmd = '"%s"' % test_case.GetRunCommand()
-        result = self._dut.adb.shell(fuzz_cmd, no_except=True)
+        self.CreateCorpusOut(test_case)
+        inuse_seed = self.RetrieveCorpusSeed(test_case)
+        if inuse_seed == 'locked':
+            # skip this test case
+            logging.warning('test case locked, skipping testcase %s.',
+                            test_case.test_name)
+            return
 
-        # TODO: upload the corpus and, possibly, crash log.
+        fuzz_cmd = '"%s"' % test_case.GetRunCommand()
+
+        result = {}
+        try:
+            result = self._dut.adb.shell(fuzz_cmd, no_except=True)
+        except adb.AdbError as e:
+            logging.exception(e)
+
+        corpus_trigger_dir = os.path.join(self._temp_dir,
+                                          test_case.GetCorpusTriggerDir())
+        os.makedirs(corpus_trigger_dir)
+        try:
+            self._dut.adb.pull(config.FUZZER_TEST_CRASH_REPORT,
+                               corpus_trigger_dir)
+        except adb.AdbError as e:
+            logging.exception(e)
+            logging.error('crash report was not created during test run.')
+
+        try:
+            self._dut.adb.pull(test_case.GetCorpusOutDir(), self._temp_dir)
+            self.AnalyzeGeneratedCorpus(test_case)
+            self._corpus_manager.UploadCorpusOutDir(test_case._test_name,
+                                                    self._temp_dir)
+        except adb.AdbError as e:
+            logging.exception(e)
+            logging.error('Device failed. Removing lock from GCS.')
+            self._corpus_manager.remove_lock(test_case._test_name)
+
+        if inuse_seed is not 'directory':
+            self.EvaluateTestcase(test_case, result, inuse_seed)
         self.AssertTestResult(test_case, result)
 
     def LogCrashReport(self, test_case):
@@ -150,11 +271,21 @@
 
         exit_code = result[const.EXIT_CODE]
         if exit_code == config.ExitCode.FUZZER_TEST_FAIL:
+            #TODO(b/64123979): once normal fail happens, examine.
             self.LogCrashReport(test_case)
             asserts.fail('%s failed normally.' % test_case.test_name)
         elif exit_code != config.ExitCode.FUZZER_TEST_PASS:
             asserts.fail('%s failed abnormally.' % test_case.test_name)
 
+    def tearDownClass(self):
+        """Removes the temporary directory used for corpus management."""
+        logging.debug('Temporary directory %s is being deleted',
+                      self._temp_dir)
+        try:
+            shutil.rmtree(self._temp_dir)
+        except OSError as e:
+            logging.exception(e)
+
     def generateFuzzerTests(self):
         """Runs fuzzer tests."""
         self.runGeneratedTests(
diff --git a/template/libfuzzer_test/libfuzzer_test_case.py b/template/libfuzzer_test/libfuzzer_test_case.py
index 6a1223a..13dd903 100644
--- a/template/libfuzzer_test/libfuzzer_test_case.py
+++ b/template/libfuzzer_test/libfuzzer_test_case.py
@@ -39,12 +39,24 @@
         self._binary_name = os.path.basename(bin_host_path)
         self._test_name = self._binary_name
 
-    def GetCorpusName(self):
+    def _GetCorpusDir(self):
         """Returns corpus directory name on target."""
-        corpus_dir = path_utils.JoinTargetPath(
-            config.FUZZER_TEST_DIR, '%s_corpus' % self._test_name)
+        corpus_dir = path_utils.JoinTargetPath(config.FUZZER_TEST_DIR,
+                                               '%s_corpus' % self._test_name)
         return corpus_dir
 
+    def GetCorpusOutDir(self):
+        """Returns corpus output directory name on target."""
+        return self._GetCorpusDir() + '_out'
+
+    def GetCorpusSeedDir(self):
+        """Returns corpus seed directory name on target."""
+        return self._GetCorpusDir() + '_seed'
+
+    def GetCorpusTriggerDir(self):
+        """Returns basename of corpus trigger directory."""
+        return '%s_corpus_trigger' % self._test_name
+
     def CreateFuzzerFlags(self):
         """Creates flags for the fuzzer executable.
 
@@ -66,15 +78,16 @@
     def GetRunCommand(self, debug_mode=False):
         """Returns target shell command to run the fuzzer binary."""
         test_flags = self.CreateFuzzerFlags()
-        corpus_dir = '' if debug_mode else self.GetCorpusName()
+        corpus_out = '' if debug_mode else self.GetCorpusOutDir()
+        corpus_seed = '' if debug_mode else self.GetCorpusSeedDir()
 
         cd_cmd = 'cd %s' % config.FUZZER_TEST_DIR
         chmod_cmd = 'chmod 777 %s' % self._binary_name
         ld_path = 'LD_LIBRARY_PATH=/data/local/tmp/64:/data/local/tmp/32:$LD_LIBRARY_PATH'
-        test_cmd = '%s ./%s %s %s' % (ld_path, self._binary_name, corpus_dir,
-                                      test_flags)
+        test_cmd = '%s ./%s %s %s %s' % (ld_path, self._binary_name,
+                                         corpus_out, corpus_seed, test_flags)
         if not debug_mode:
-          test_cmd += ' > /dev/null'
+            test_cmd += ' > /dev/null'
         return ' && '.join([cd_cmd, chmod_cmd, test_cmd])
 
     @property
