diff --git a/TEST_MAPPING b/TEST_MAPPING
index e197b25..8cb01d7 100644
--- a/TEST_MAPPING
+++ b/TEST_MAPPING
@@ -72,11 +72,6 @@
       "name": "TerminalAppTests"
     }
   ],
-  "ferrochrome-postsubmit": [
-    {
-      "name": "ferrochrome-tests"
-    }
-  ],
   "postsubmit": [
     {
       "name": "CtsMicrodroidDisabledTestCases"
diff --git a/docs/custom_vm.md b/docs/custom_vm.md
index b02fbf7..2863eb6 100644
--- a/docs/custom_vm.md
+++ b/docs/custom_vm.md
@@ -106,223 +106,3 @@
 adduser linux sudo
 reboot
 ```
-
-## Graphical VMs
-
-To run OSes with graphics support, simply
-`packages/modules/Virtualization/tests/ferrochrome/ferrochrome.sh --forever`.
-It prepares and launches the ChromiumOS, which is the only officially supported
-guest payload. We will be adding more OSes in the future.
-
-If you want to do so by yourself, follow the instruction below.
-
-### Prepare a guest image
-
-As of today (April 2024), ChromiumOS is the only officially supported guest
-payload. We will be adding more OSes in the future.
-
-#### Download ChromiumOS from build server
-
-Download
-https://storage.googleapis.com/chromiumos-image-archive/ferrochrome-public/R128-15926.0.0/chromiumos_test_image.tar.xz.
-The above will download ferrochrome test image with version `R128-15926.0.0`.
-
-To download latest version, use following code.
-
-```sh
-URL=https://storage.googleapis.com/chromiumos-image-archive/ferrochrome-public
-LATEST_VERSION=$(curl -s ${URL}/LATEST-main)
-curl -O ${URL}/${LATEST_VERSION}/chromiumos_test_image.tar.xz
-```
-
-To navigate build server artifacts,
-[install gsutil](https://cloud.google.com/storage/docs/gsutil_install).
-`gs://chromiumos-image-archive/ferrochrome-public` is the top level directory for ferrochrome build.
-
-#### Build ChromiumOS for VM
-
-First, check out source code from the ChromiumOS and Chromium projects.
-
-* Checking out Chromium: https://www.chromium.org/developers/how-tos/get-the-code/
-* Checking out ChromiumOS: https://www.chromium.org/chromium-os/developer-library/guides/development/developer-guide/
-
-Important: When you are at the step “Set up gclient args” in the Chromium checkout instruction, configure .gclient as follows.
-
-```
-$ cat ~/chromium/.gclient
-solutions = [
-  {
-    "name": "src",
-    "url": "https://chromium.googlesource.com/chromium/src.git",
-    "managed": False,
-    "custom_deps": {},
-    "custom_vars": {},
-  },
-]
-target_os = ['chromeos']
-```
-
-In this doc, it is assumed that ChromiumOS is checked out at `~/chromiumos` and
-Chromium is at `~/chromium`. If you downloaded to different places, you can
-create symlinks.
-
-Then enter into the cros sdk.
-
-```
-$ cd ~/chromiumos
-$ cros_sdk --chrome-root=$(readlink -f ~/chromium)
-```
-
-Now you are in the cros sdk. `(cr)` below means that the commands should be
-executed inside the sdk.
-
-First, choose the target board. `ferrochrome` is the name of the virtual board
-for AVF-compatible VM.
-
-```
-(cr) setup_board --board=ferrochrome
-```
-
-Then, tell the cros sdk that you want to build chrome (the browser) from the
-local checkout and also with your local modifications instead of prebuilts.
-
-```
-(cr) CHROME_ORIGIN=LOCAL_SOURCE
-(cr) ACCEPT_LICENSES='*'
-(cr) cros workon -b ferrochrome start \
-chromeos-base/chromeos-chrome \
-chromeos-base/chrome-icu
-```
-
-Optionally, if you have touched the kernel source code (which is under
-~/chromiumos/src/third_party/kernel/v5.15), you have to tell the cros sdk that
-you want it also to be built from the modified source code, not from the
-official HEAD.
-
-```
-(cr) cros workon -b ferrochrome start chromeos-kernel-5_15
-```
-
-Finally, build individual packages, and build the disk image out of the packages.
-
-```
-(cr) cros build-packages --board=ferrochrome --chromium --accept-licenses='*'
-(cr) cros build-image --board=ferrochrome --no-enable-rootfs-verification test
-```
-
-This takes some time. When the build is done, exit from the sdk.
-
-Note: If build-packages doesn’t seem to include your local changes, try
-invoking emerge directly:
-
-```
-(cr) emerge-ferrochrome -av chromeos-base/chromeos-chrome
-```
-
-Don’t forget to call `build-image` afterwards.
-
-You need ChromiumOS disk image: ~/chromiumos/src/build/images/ferrochrome/latest/chromiumos_test_image.bin
-
-### Create a guest VM configuration
-
-Push the kernel and the main image to the Android device.
-
-```
-$ adb push  ~/chromiumos/src/build/images/ferrochrome/latest/chromiumos_test_image.bin /data/local/tmp/
-```
-
-Create a VM config file as below.
-
-```
-$ cat > vm_config.json; adb push vm_config.json /data/local/tmp
-{
-    "name": "cros",
-    "disks": [
-        {
-            "image": "/data/local/tmp/chromiumos_test_image.bin",
-            "partitions": [],
-            "writable": true
-        }
-    ],
-    "protected": false,
-    "cpu_topology": "match_host",
-    "platform_version": "~1.0",
-    "memory_mib": 8096,
-    "debuggable": true,
-    "console_out": true,
-    "connect_console": true,
-    "console_input_device": "hvc0",
-    "network": true,
-    "input": {
-        "touchscreen": true,
-        "keyboard": true,
-        "mouse": true,
-        "trackpad": true,
-        "switches": true
-    },
-    "audio": {
-        "speaker": true,
-        "microphone": true
-    },
-    "gpu": {
-        "backend": "virglrenderer",
-        "context_types": ["virgl2"]
-    },
-    "display": {
-        "scale": "0.77",
-        "refresh_rate": "30"
-    }
-}
-```
-
-### Running the VM
-
-1. Grant permission to the `VmLauncherApp` if the virt apex is Google-signed.
-    ```shell
-    $ adb shell su root pm grant com.google.android.virtualization.vmlauncher android.permission.USE_CUSTOM_VIRTUAL_MACHINE
-    ```
-
-2. Ensure your device is connected to the Internet.
-
-3. Launch the app with adb.
-    ```shell
-    $ adb shell su root am start-activity -a android.virtualization.VM_LAUNCHER
-    ```
-
-If it doesn’t work well, try
-
-```
-$ adb shell pm clear com.android.virtualization.vmlauncher
-# or
-$ adb shell pm clear com.google.android.virtualization.vmlauncher
-```
-
-### Debugging
-
-To open the serial console (interactive terminal):
-```shell
-$ adb shell -t /apex/com.android.virt/bin/vm console
-```
-
-To see console logs only, check
-`/data/user/${current_user_id}/com{,.google}.android.virtualization.vmlauncher/files/${vm_name}.log`
-
-You can monitor console out as follows
-
-```shell
-$ adb shell 'su root tail +0 -F /data/user/$(am get-current-user)/com{,.google}.android.virtualization.vmlauncher/files/${vm_name}.log'
-```
-
-For ChromiumOS, you can enter to the console via SSH connection. Check your IP
-address of ChromiumOS VM from the ethernet network setting page and follow
-commands below.
-
-```shell
-$ adb kill-server ; adb start-server
-$ adb shell nc -s localhost -L -p 9222 nc ${CHROMIUMOS_IPV4_ADDR} 22 # This command won't be terminated.
-$ adb forward tcp:9222 tcp:9222
-$ ssh -oProxyCommand=none -o UserKnownHostsFile=/dev/null root@localhost -p 9222
-```
-
-For ChromiumOS, you would need to login after enthering its console.
-The user ID and the password is `root` and `test0000` respectively.
diff --git a/tests/ferrochrome/Android.bp b/tests/ferrochrome/Android.bp
deleted file mode 100644
index f1b7f27..0000000
--- a/tests/ferrochrome/Android.bp
+++ /dev/null
@@ -1,28 +0,0 @@
-package {
-    default_applicable_licenses: ["Android-Apache-2.0"],
-}
-
-sh_test_host {
-    name: "ferrochrome-tests",
-    src: ":ferrochrome-tests.sh",
-    test_suites: ["general-tests"],
-    test_options: {
-        unit_test: false,
-    },
-    per_testcase_directory: true,
-    data: ["assets/vm_config.json"],
-    data_bins: ["ferrochrome-precondition-checker.sh"],
-}
-
-// Workaround for enabling verbose logging only on CI
-genrule {
-    name: "ferrochrome-tests.sh",
-    srcs: ["ferrochrome.sh"],
-    out: ["ferrochrome-tests"],
-    cmd: "sed '2 i set -x' $(in) > $(out)",
-}
-
-sh_binary_host {
-    name: "ferrochrome-precondition-checker.sh",
-    src: "ferrochrome-precondition-checker.sh",
-}
diff --git a/tests/ferrochrome/AndroidTest.xml b/tests/ferrochrome/AndroidTest.xml
deleted file mode 100644
index 6c975be..0000000
--- a/tests/ferrochrome/AndroidTest.xml
+++ /dev/null
@@ -1,53 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright 2024 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="Host driven tests for ferrochrome">
-    <option name="config-descriptor:metadata" key="parameter" value="not_instant_app" />
-    <option name="config-descriptor:metadata" key="parameter" value="not_multi_abi" />
-    <option name="config-descriptor:metadata" key="parameter" value="secondary_user" />
-
-    <!-- 'adb root' to enable vmlauncher -->
-    <target_preparer class="com.android.tradefed.targetprep.RootTargetPreparer">
-        <option name="force-root" value="true"/>
-    </target_preparer>
-
-    <!-- Check assumptions here, because we can't skip tests in shell test -->
-    <target_preparer class="com.android.tradefed.targetprep.RunHostScriptTargetPreparer">
-        <option name="script-file" value="ferrochrome-precondition-checker.sh" />
-    </target_preparer>
-
-    <!-- Explicitly clean up ferrochrome image when done.
-         It's too large (6.5G+), so this may break further tests. -->
-    <target_preparer class="com.android.tradefed.targetprep.RunCommandTargetPreparer">
-        <option name="throw-if-cmd-fail" value="false" />
-        <option name="run-command" value="mkdir /data/local/tmp" />
-        <option name="teardown-command" value="pkill vmlauncher" />
-        <option name="teardown-command" value="rm /data/local/tmp/chromiumos_base_image.bin" />
-        <option name="teardown-command" value="rm -rf /data/local/tmp/ferrochrome_screenshots" />
-    </target_preparer>
-
-    <test class="com.android.tradefed.testtype.binary.ExecutableHostTest">
-        <option name="binary" value="ferrochrome-tests" />
-        <option name="relative-path-execution" value="true" />
-        <option name="runtime-hint" value="10m" />
-        <option name="per-binary-timeout" value="20m" />
-    </test>
-
-    <metrics_collector class="com.android.tradefed.device.metric.FilePullerLogCollector">
-        <option name="directory-keys" value="/data/local/tmp/ferrochrome_screenshots" />
-        <option name="collect-on-run-ended-only" value="true" />
-    </metrics_collector>
-</configuration>
-
diff --git a/tests/ferrochrome/assets/vm_config.json b/tests/ferrochrome/assets/vm_config.json
deleted file mode 100644
index 53e3b72..0000000
--- a/tests/ferrochrome/assets/vm_config.json
+++ /dev/null
@@ -1,38 +0,0 @@
-{
-    "name": "cros",
-    "disks": [
-        {
-            "image": "/data/local/tmp/chromiumos_base_image.bin",
-            "partitions": [],
-            "writable": true
-        }
-    ],
-    "protected": false,
-    "cpu_topology": "match_host",
-    "platform_version": "~1.0",
-    "memory_mib": 8096,
-    "debuggable": true,
-    "console_out": true,
-    "connect_console": true,
-    "console_input_device": "hvc0",
-    "network": true,
-    "input": {
-        "touchscreen": true,
-        "keyboard": true,
-        "mouse": true,
-        "trackpad": true,
-        "switches": true
-    },
-    "audio": {
-        "speaker": true,
-        "microphone": true
-    },
-    "gpu": {
-        "backend": "virglrenderer",
-        "context_types": ["virgl2"]
-    },
-    "display": {
-        "scale": "0.77",
-        "refresh_rate": "30"
-    }
-}
diff --git a/tests/ferrochrome/ferrochrome-precondition-checker.sh b/tests/ferrochrome/ferrochrome-precondition-checker.sh
deleted file mode 100644
index d3f7f5a..0000000
--- a/tests/ferrochrome/ferrochrome-precondition-checker.sh
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/bin/bash
-
-# Copyright 2024 Google Inc. All rights reserved.
-#
-# 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.
-
-
-## Precondition checks for running ferrochrome
-## Used by CI for skipping tests.
-
-REQUIRED_DISK_SPACE=7340032    # Requires 7G, while image is 6.5G
-
-# `adb root` always returns exit code 0
-if [[ "$(adb root)" == *"cannot"* ]]; then
-  >&2 echo "Failed to run adb root"
-  exit 1
-fi
-
-# `pm resolve-activity` always returns exit code 0
-resolved_activity=$(adb shell pm resolve-activity -a android.virtualization.VM_LAUNCHER)
-if [[ "${resolved_activity}" == "No activity found" ]]; then
-  >&2 echo "Failed to find vmlauncher"
-  exit 1
-fi
-
-free_space=$(adb shell df /data/local | tail -1 | awk '{print $4}')
-if [[ ${free_space} -lt ${REQUIRED_DISK_SPACE} ]]; then
-  >&2 echo "Insufficient space on DUT. Need ${REQUIRED_DISK_SPACE}, but was ${free_space}"
-  exit 1
-fi
-
-free_space=$(df /tmp | tail -1 | awk '{print $4}')
-if [[ ${free_space} -lt ${REQUIRED_DISK_SPACE} ]]; then
-  >&2 echo "Insufficient space on host. Need ${REQUIRED_DISK_SPACE}, but was ${free_space}"
-  exit 1
-fi
-
-cpu_abi=$(adb shell getprop ro.product.cpu.abi)
-if [[ "${cpu_abi}" != "arm64"* ]]; then
-  >&2 echo "Unsupported architecture. Requires arm64, but was ${cpu_abi}"
-  exit 1
-fi
-
-device=$(adb shell getprop ro.product.vendor.device)
-if [[ "${device}" == "vsock_"* ]]; then
-  >&2 echo "Unsupported device. Cuttlefish isn't supported"
-  exit 1
-fi
diff --git a/tests/ferrochrome/ferrochrome.sh b/tests/ferrochrome/ferrochrome.sh
deleted file mode 100755
index 03630dd..0000000
--- a/tests/ferrochrome/ferrochrome.sh
+++ /dev/null
@@ -1,192 +0,0 @@
-#!/bin/bash
-
-# Copyright 2024 Google Inc. All rights reserved.
-#
-# 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.
-
-## Booting tests for ferrochrome
-## Keep this file synced with docs/custom_vm.md
-
-set -e
-
-FECR_GS_URL="https://storage.googleapis.com/chromiumos-image-archive/ferrochrome-public"
-FECR_DEFAULT_VERSION="R128-15958.0.0"
-FECR_DEFAULT_SCREENSHOT_DIR="/data/local/tmp/ferrochrome_screenshots"  # Hardcoded at AndroidTest.xml
-FECR_TEST_IMAGE="chromiumos_test_image"
-FECR_BASE_IMAGE="chromiumos_base_image"
-FECR_DEVICE_DIR="/data/local/tmp"
-FECR_IMAGE_VM_CONFIG_JSON="chromiumos_base_image.bin"  # hardcoded at vm_config.json
-FECR_CONFIG_PATH="/data/local/tmp/vm_config.json"  # hardcoded at VmLauncherApp
-FECR_CONSOLE_LOG_PATH="files/cros.log" # log file name is ${vm_name}.log
-FECR_TEST_IMAGE_BOOT_COMPLETED_LOG="Have fun and send patches!"
-FECR_BASE_IMAGE_BOOT_COMPLETED_LOG="Chrome started, our work is done, exiting"
-FECR_BOOT_TIMEOUT="300" # 5 minutes (300 seconds)
-ACTION_NAME="android.virtualization.VM_LAUNCHER"
-
-# Match this with AndroidTest.xml and assets/vm_config.json
-FECR_DEFAULT_IMAGE="${FECR_BASE_IMAGE}"
-FECR_DEFAULT_BOOT_COMPLETED_LOG="${FECR_BASE_IMAGE_BOOT_COMPLETED_LOG}"
-
-fecr_clean_up() {
-  trap - INT
-
-  # Reset screen always on
-  adb shell svc power stayon false
-
-  if [[ -d ${fecr_dir} && -z ${fecr_keep} ]]; then
-    rm -rf ${fecr_dir}
-  fi
-}
-
-print_usage() {
-  echo "ferochrome: Launches ferrochrome image"
-  echo ""
-  echo "By default, this downloads ${FECR_DEFAULT_VERSION} with version ${FECR_DEFAULT_VERSION},"
-  echo "launches, and waits for boot completed."
-  echo "When done, removes downloaded image on host while keeping pushed image on device."
-  echo ""
-  echo "Usage: ferrochrome [options]"
-  echo ""
-  echo "Options"
-  echo "  --help or -h: This message"
-  echo "  --dir DIR: Use ferrochrome images at the dir instead of downloading"
-  echo "  --verbose: Verbose log message (set -x)"
-  echo "  --skip: Skipping downloading and/or pushing images"
-  echo "  --version \${version}: ferrochrome version to be downloaded"
-  echo "  --keep: Keep downloaded ferrochrome image"
-  echo "  --test: Download test image instead"
-  echo "  --forever: Keep ferrochrome running forever. Used for manual test"
-}
-
-fecr_version="${FECR_DEFAULT_VERSION}"
-fecr_dir=""
-fecr_keep=""
-fecr_skip=""
-fecr_script_path=$(dirname ${0})
-fecr_verbose=""
-fecr_image="${FECR_DEFAULT_IMAGE}"
-fecr_boot_completed_log="${FECR_DEFAULT_BOOT_COMPLETED_LOG}"
-fecr_screenshot_dir="${FECR_DEFAULT_SCREENSHOT_DIR}"
-fecr_forever=""
-
-# Parse parameters
-while (( "${#}" )); do
-  case "${1}" in
-    --verbose)
-      fecr_verbose="true"
-      ;;
-    --version)
-      shift
-      fecr_version="${1}"
-      ;;
-    --dir)
-      shift
-      fecr_dir="${1}"
-      fecr_keep="true"
-      ;;
-    --keep)
-      fecr_keep="true"
-      ;;
-    --skip)
-      fecr_skip="true"
-      ;;
-    --test)
-      fecr_image="${FECR_TEST_IMAGE}"
-      fecr_boot_completed_log="${FECR_TEST_IMAGE_BOOT_COMPLETED_LOG}"
-      ;;
-    --forever)
-      fecr_forever="true"
-      ;;
-    -h|--help)
-      print_usage
-      exit 0
-      ;;
-    *)
-      print_usage
-      exit 1
-      ;;
-  esac
-  shift
-done
-
-trap fecr_clean_up INT
-trap fecr_clean_up EXIT
-
-if [[ -n "${fecr_verbose}" ]]; then
-  set -x
-fi
-
-. "${fecr_script_path}/ferrochrome-precondition-checker.sh"
-
-resolved_activities=$(adb shell pm query-activities --components -a ${ACTION_NAME})
-
-if [[ "$(echo ${resolved_activities} | wc -l)" != "1" ]]; then
-  >&2 echo "Multiple VM launchers exists"
-  exit 1
-fi
-
-pkg_name=$(dirname ${resolved_activities})
-current_user=$(adb shell am get-current-user)
-
-echo "Reset app & granting permission"
-adb shell pm clear --user ${current_user} ${pkg_name} > /dev/null
-adb shell pm grant --user ${current_user} ${pkg_name} android.permission.RECORD_AUDIO
-adb shell pm grant --user ${current_user} ${pkg_name} android.permission.USE_CUSTOM_VIRTUAL_MACHINE > /dev/null
-
-if [[ -z "${fecr_skip}" ]]; then
-  if [[ -z "${fecr_dir}" ]]; then
-    # Download fecr image archive, and extract necessary files
-    # DISCLAIMER: Image is too large (1.5G+ for compressed, 6.5G+ for uncompressed), so can't submit.
-    fecr_dir=$(mktemp -d)
-
-    echo "Downloading & extracting ferrochrome image to ${fecr_dir}"
-    curl ${FECR_GS_URL}/${fecr_version}/${fecr_image}.tar.xz | tar xfJ - -C ${fecr_dir}
-  fi
-
-  echo "Pushing ferrochrome image to ${FECR_DEVICE_DIR}"
-  adb shell mkdir -p ${FECR_DEVICE_DIR} > /dev/null || true
-  adb push ${fecr_dir}/${fecr_image}.bin ${FECR_DEVICE_DIR}/${FECR_IMAGE_VM_CONFIG_JSON}
-  adb push ${fecr_script_path}/assets/vm_config.json ${FECR_CONFIG_PATH}
-fi
-
-echo "Ensure screen unlocked"
-adb shell svc power stayon true
-adb shell wm dismiss-keyguard
-
-echo "Starting ferrochrome"
-adb shell am start-activity -a ${ACTION_NAME} > /dev/null
-
-# HSUM aware log path
-log_path="/data/user/${current_user}/${pkg_name}/${FECR_CONSOLE_LOG_PATH}"
-fecr_start_time=${EPOCHSECONDS}
-
-echo "Check ${log_path} on device for console log"
-
-if [[ "${fecr_forever}" == "true" ]]; then
-  echo "Ctrl+C to stop running"
-  echo "To open interactive serial console, use following command:"
-  echo "adb shell -t /apex/com.android.virt/bin/vm console"
-else
-  adb shell mkdir -p "${fecr_screenshot_dir}"
-  while [[ $((EPOCHSECONDS - fecr_start_time)) -lt ${FECR_BOOT_TIMEOUT} ]]; do
-    adb shell screencap -p "${fecr_screenshot_dir}/screenshot-${EPOCHSECONDS}.png"
-    adb shell grep -soF \""${fecr_boot_completed_log}"\" "${log_path}" && exit 0 || true
-    sleep 10
-  done
-
-  >&2 echo "Ferrochrome failed to boot. Dumping console log"
-  >&2 adb shell cat ${log_path}
-
-  exit 1
-fi
-
