Merge pi-platform-release to stage-aosp-master - DO NOT MERGE

Change-Id: Iacae0d7dbc608d96ae238e441d191d20242d8148
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