Reland "[artifacts][testing] Don't isolate images if they were uploaded to GCS through artifactory."

This is a reland of 31ef2d209d14a6e810cd962f95124f9eda3ad39c

Original change's description:
> [artifacts][testing] Don't isolate images if they were uploaded to GCS
> through artifactory.
>
> Also use the default_service_account from the test spec, which is
> required for fetching the images from GCS.
>
> Bug: 36481, 37541
> Change-Id: Ica0492db825c537f2738ab31d9c21c5a869a1c1e

Bug: 36481, 37541
Change-Id: Ie330c439393c12706f9ef88b170c2f058f1528d9
diff --git a/recipe_modules/artifacts/api.py b/recipe_modules/artifacts/api.py
index ebc8fff..8cb0a9e 100644
--- a/recipe_modules/artifacts/api.py
+++ b/recipe_modules/artifacts/api.py
@@ -44,6 +44,19 @@
       return 'http://%s/%s' % (host, path)
     return 'gs://%s' % path
 
+  def image_url(self, host=None):
+    """Returns the URL (str) of the uploaded images.
+
+    Args:
+      host (str|None): The hosting address of the images; if unprovided, the
+       default GCS URL will be constructed.
+    """
+    assert self.gcs_bucket and self.uuid
+    path = '%s/%s/images' % (self.gcs_bucket, self.uuid)
+    if host:
+      return 'http://%s/%s' % (host, path)
+    return 'gs://%s' % path
+
   def upload(self, step_name, build):
     """Uploads built and assembled artifacts.
 
diff --git a/recipe_modules/artifacts/examples/full.py b/recipe_modules/artifacts/examples/full.py
index 49a0396..fc11324 100644
--- a/recipe_modules/artifacts/examples/full.py
+++ b/recipe_modules/artifacts/examples/full.py
@@ -37,6 +37,8 @@
   api.artifacts.package_repo_url(host='127.0.0.1')
   api.artifacts.package_blob_url()
   api.artifacts.package_blob_url(host='127.0.0.1')
+  api.artifacts.image_url()
+  api.artifacts.image_url(host='127.0.0.1')
 
 
 def GenTests(api):
diff --git a/recipe_modules/build/examples/full.expected/extract_build_artifacts.json b/recipe_modules/build/examples/full.expected/extract_build_artifacts.json
index 4f865cf..3b7a812 100644
--- a/recipe_modules/build/examples/full.expected/extract_build_artifacts.json
+++ b/recipe_modules/build/examples/full.expected/extract_build_artifacts.json
@@ -3316,82 +3316,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_2/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_2/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_2/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_2/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_2/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_2/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_2/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_2/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_2/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_2/netboot.zbi\"], \"[START_DIR]/out/default/some.dep\": [\"[CLEANUP]/isolate_tmp_2/some.dep\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_2/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_2/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_2/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_2/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_2/testrunner\"], \"[START_DIR]/out/default/some.dep\": [\"[CLEANUP]/isolate_tmp_2/some.dep\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_2/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -3507,7 +3436,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"0\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"0\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"DUMMY.POOL\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"images.json\", \n            \"-timeout\", \n            \"0s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/uuid/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"-use-runtests\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"ci\", \n              \"key\": \"BUILDBUCKET_BUCKET\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"fuchsia\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"builder\", \n              \"key\": \"BUILDER_NAME\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"1527292217\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"0\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"0\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"0\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"DUMMY.POOL\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://###fuchsia-build###/uuid/images/images.json\", \n            \"-timeout\", \n            \"0s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/uuid/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"-use-runtests\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"ci\", \n              \"key\": \"BUILDBUCKET_BUCKET\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"fuchsia\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"builder\", \n              \"key\": \"BUILDER_NAME\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"1527292217\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"0\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_3/task_requests.json"
     ],
     "infra_step": true,
@@ -3550,7 +3479,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://###fuchsia-build###/uuid/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"0s\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
diff --git a/recipe_modules/build/examples/full.expected/extract_build_artifacts_with_images.json b/recipe_modules/build/examples/full.expected/extract_build_artifacts_with_images.json
index 44c75f4..a1b518a 100644
--- a/recipe_modules/build/examples/full.expected/extract_build_artifacts_with_images.json
+++ b/recipe_modules/build/examples/full.expected/extract_build_artifacts_with_images.json
@@ -3314,82 +3314,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_2/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_2/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_2/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_2/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_2/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_2/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_2/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_2/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_2/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_2/netboot.zbi\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_2/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_2/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_2/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_2/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_2/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_2/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -3503,7 +3432,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"0\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"0\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"DUMMY.POOL\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"images.json\", \n            \"-timeout\", \n            \"0s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/uuid/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"-use-runtests\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"ci\", \n              \"key\": \"BUILDBUCKET_BUCKET\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"fuchsia\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"builder\", \n              \"key\": \"BUILDER_NAME\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"1527292217\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"0\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"0\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"0\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"DUMMY.POOL\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://###fuchsia-build###/uuid/images/images.json\", \n            \"-timeout\", \n            \"0s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/uuid/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/###fuchsia-build###/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"-use-runtests\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"ci\", \n              \"key\": \"BUILDBUCKET_BUCKET\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"fuchsia\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"builder\", \n              \"key\": \"BUILDER_NAME\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"1527292217\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"0\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_3/task_requests.json"
     ],
     "infra_step": true,
@@ -3546,7 +3475,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://###fuchsia-build###/uuid/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"0s\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
diff --git a/recipe_modules/build/examples/full.py b/recipe_modules/build/examples/full.py
index 8564e9e..3c748df 100644
--- a/recipe_modules/build/examples/full.py
+++ b/recipe_modules/build/examples/full.py
@@ -230,7 +230,9 @@
         0,
         0,
         True,
-        timeout_secs=0)
+        timeout_secs=0,
+        pave_from_gcs=True,
+    )
     test_orchestration_inputs = api.build.TestOrchestrationInputs.from_build_results(
         build, shard_requests)
     test_orchestration_inputs.isolate(api)
diff --git a/recipe_modules/testing/examples/full.expected/asan_tests.json b/recipe_modules/testing/examples/full.expected/asan_tests.json
index 52f562f..cc26fd8 100644
--- a/recipe_modules/testing/examples/full.expected/asan_tests.json
+++ b/recipe_modules/testing/examples/full.expected/asan_tests.json
@@ -1150,7 +1150,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/fuchsia.zbi",
       "[START_DIR]/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1220,49 +1220,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -1399,7 +1361,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"-cpu\", \"8\", \"-memory\", \"8192\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"-cpu\", \"8\", \"-memory\", \"8192\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/async.json b/recipe_modules/testing/examples/full.expected/async.json
index 0244d01..999214e 100644
--- a/recipe_modules/testing/examples/full.expected/async.json
+++ b/recipe_modules/testing/examples/full.expected/async.json
@@ -1305,7 +1305,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/fail_then_timeout.json b/recipe_modules/testing/examples/full.expected/fail_then_timeout.json
index 9515e02..8b750ef 100644
--- a/recipe_modules/testing/examples/full.expected/fail_then_timeout.json
+++ b/recipe_modules/testing/examples/full.expected/fail_then_timeout.json
@@ -1246,50 +1246,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard fuchsia-0000.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard fuchsia-0000.create tree of build artifacts",
@@ -1422,7 +1383,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1771,7 +1732,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/isolated_test_device_no_pave.json b/recipe_modules/testing/examples/full.expected/isolated_test_device_no_pave.json
index 9dc2fd9..251d0db 100644
--- a/recipe_modules/testing/examples/full.expected/isolated_test_device_no_pave.json
+++ b/recipe_modules/testing/examples/full.expected/isolated_test_device_no_pave.json
@@ -1146,7 +1146,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/netboot.zbi",
       "[START_DIR]/out/default/netboot.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1155,91 +1155,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_1/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_1/symbol-archive.tgz\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_1/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -1375,7 +1295,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:Intel NUC Kit NUC6i3SYK-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"zedboot\", \"-config\", \"/etc/botanist/config.json\", \"-images\", \"images.json\", \"-results-dir\", \"/tmp/infra-test-output\", \"-out\", \"out.tar\", \"-serial-log\", \"serial.txt\", \"-netboot\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Intel NUC Kit NUC6i3SYK\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"out.tar\", \"serial.txt\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:Intel NUC Kit NUC6i3SYK-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"zedboot\", \"-config\", \"/etc/botanist/config.json\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-results-dir\", \"/tmp/infra-test-output\", \"-out\", \"out.tar\", \"-serial-log\", \"serial.txt\", \"-netboot\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Intel NUC Kit NUC6i3SYK\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"out.tar\", \"serial.txt\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/isolated_tests_kernel_panic.json b/recipe_modules/testing/examples/full.expected/isolated_tests_kernel_panic.json
index d2f2984..12f3f76 100644
--- a/recipe_modules/testing/examples/full.expected/isolated_tests_kernel_panic.json
+++ b/recipe_modules/testing/examples/full.expected/isolated_tests_kernel_panic.json
@@ -1150,7 +1150,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/fuchsia.zbi",
       "[START_DIR]/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1220,49 +1220,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -1380,7 +1342,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1496,7 +1458,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/isolated_tests_no_json.json b/recipe_modules/testing/examples/full.expected/isolated_tests_no_json.json
index d4eb2cd..9a77f60 100644
--- a/recipe_modules/testing/examples/full.expected/isolated_tests_no_json.json
+++ b/recipe_modules/testing/examples/full.expected/isolated_tests_no_json.json
@@ -1150,7 +1150,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/fuchsia.zbi",
       "[START_DIR]/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1220,49 +1220,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -1377,7 +1339,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/isolated_tests_no_resource.json b/recipe_modules/testing/examples/full.expected/isolated_tests_no_resource.json
index 869362f..2687216 100644
--- a/recipe_modules/testing/examples/full.expected/isolated_tests_no_resource.json
+++ b/recipe_modules/testing/examples/full.expected/isolated_tests_no_resource.json
@@ -1150,7 +1150,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/fuchsia.zbi",
       "[START_DIR]/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1220,49 +1220,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -1381,7 +1343,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1498,7 +1460,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/isolated_tests_test_failure.json b/recipe_modules/testing/examples/full.expected/isolated_tests_test_failure.json
index 4222e65..3db400b 100644
--- a/recipe_modules/testing/examples/full.expected/isolated_tests_test_failure.json
+++ b/recipe_modules/testing/examples/full.expected/isolated_tests_test_failure.json
@@ -1150,7 +1150,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/fuchsia.zbi",
       "[START_DIR]/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1220,49 +1220,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -1403,7 +1365,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1628,7 +1590,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/sharded_failure_string.json b/recipe_modules/testing/examples/full.expected/sharded_failure_string.json
index 9cbf469..2005ad7 100644
--- a/recipe_modules/testing/examples/full.expected/sharded_failure_string.json
+++ b/recipe_modules/testing/examples/full.expected/sharded_failure_string.json
@@ -1189,92 +1189,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_1/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_1/netboot.zbi\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_1/symbol-archive.tgz\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_1/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -1407,7 +1326,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1746,7 +1665,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/sharded_kernel_panic.json b/recipe_modules/testing/examples/full.expected/sharded_kernel_panic.json
index 18d83de..d268b36 100644
--- a/recipe_modules/testing/examples/full.expected/sharded_kernel_panic.json
+++ b/recipe_modules/testing/examples/full.expected/sharded_kernel_panic.json
@@ -1189,92 +1189,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_1/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_1/netboot.zbi\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_1/symbol-archive.tgz\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_1/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -1407,7 +1326,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1740,7 +1659,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/test_in_shards_mixed_failure.json b/recipe_modules/testing/examples/full.expected/test_in_shards_mixed_failure.json
index fa3c413..650b785 100644
--- a/recipe_modules/testing/examples/full.expected/test_in_shards_mixed_failure.json
+++ b/recipe_modules/testing/examples/full.expected/test_in_shards_mixed_failure.json
@@ -1309,50 +1309,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard fuchsia-0000.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard fuchsia-0000.create tree of build artifacts",
@@ -1449,92 +1410,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_2/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard fuchsia-0001.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_2/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_2/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_2/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_2/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_2/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_2/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_2/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_2/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_2/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_2/netboot.zbi\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_2/symbol-archive.tgz\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_2/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_2/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_2/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_2/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_2/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_2/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard fuchsia-0001.create tree of build artifacts",
@@ -1633,50 +1513,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard fuchsia-0002.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard fuchsia-0002.create tree of build artifacts",
@@ -1738,92 +1579,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard fuchsia-0003.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_4/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_4/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_4/netboot.zbi\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_4/symbol-archive.tgz\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_4/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard fuchsia-0003.create tree of build artifacts",
@@ -1921,7 +1681,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1959,7 +1719,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0001\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0001\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -1997,7 +1757,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0002\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0002\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -2035,7 +1795,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0003\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0003\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -2951,7 +2711,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0001\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0001\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -2989,7 +2749,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0002\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0002\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
@@ -3027,7 +2787,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"fuchsia-0003\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"fuchsia-0003\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:NUC-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"NUC\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"NUC\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/test_in_shards_single_attempt.json b/recipe_modules/testing/examples/full.expected/test_in_shards_single_attempt.json
index 8a73de1..35dc059 100644
--- a/recipe_modules/testing/examples/full.expected/test_in_shards_single_attempt.json
+++ b/recipe_modules/testing/examples/full.expected/test_in_shards_single_attempt.json
@@ -1246,50 +1246,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard multiplied:fuchsia-0000.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard multiplied:fuchsia-0000.create tree of build artifacts",
@@ -1422,7 +1383,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"multiplied:fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"multiplied:fuchsia-0000\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"1s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/test_with_shards_arm64_serial_failure.json b/recipe_modules/testing/examples/full.expected/test_with_shards_arm64_serial_failure.json
index 488ad27..8be4f56 100644
--- a/recipe_modules/testing/examples/full.expected/test_with_shards_arm64_serial_failure.json
+++ b/recipe_modules/testing/examples/full.expected/test_with_shards_arm64_serial_failure.json
@@ -1189,92 +1189,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_1/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_1/netboot.zbi\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_1/symbol-archive.tgz\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_1/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -1407,7 +1326,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"Vim2\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:Khadas Vim2 Max-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-repo\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/8945511751514863184/repository\", \"-blobs\", \"http://$GCS_PROXY_HOST/fuchsia-artifacts/blobs\", \"-config\", \"/etc/botanist/config.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"pool\", \"value\": \"fuchsia.tests\"}, {\"key\": \"device_type\", \"value\": \"Khadas Vim2 Max\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"Khadas Vim2 Max\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/upload_test_coverage.json b/recipe_modules/testing/examples/full.expected/upload_test_coverage.json
index 52f562f..cc26fd8 100644
--- a/recipe_modules/testing/examples/full.expected/upload_test_coverage.json
+++ b/recipe_modules/testing/examples/full.expected/upload_test_coverage.json
@@ -1150,7 +1150,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/fuchsia.zbi",
       "[START_DIR]/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1220,49 +1220,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -1399,7 +1361,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"-cpu\", \"8\", \"-memory\", \"8192\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"arm64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"-cpu\", \"8\", \"-memory\", \"8192\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.expected/upload_to_catapult.json b/recipe_modules/testing/examples/full.expected/upload_to_catapult.json
index bf33f67..d1ea6e8 100644
--- a/recipe_modules/testing/examples/full.expected/upload_to_catapult.json
+++ b/recipe_modules/testing/examples/full.expected/upload_to_catapult.json
@@ -1246,50 +1246,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -1422,7 +1383,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"default_service_account\", \"tags\": [\"test_environment_name:QEMU-arm64\"], \"task_slices\": [{\"expiration_secs\": \"0\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"0s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"arm64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"//products/foo.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"arm64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"//boards/foo.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"build-type\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"0\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"0\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipe_modules/testing/examples/full.py b/recipe_modules/testing/examples/full.py
index 1ef213d..863432a 100644
--- a/recipe_modules/testing/examples/full.py
+++ b/recipe_modules/testing/examples/full.py
@@ -89,13 +89,15 @@
         Property(kind=bool, help='Whether to use runtests', default=False),
     'variants':
         Property(kind=list, help='GN variants', default=[]),
+    'pave_from_gcs':
+        Property(kind=bool, help='Whether to pave from GCS', default=True),
 }
 
 
 def RunSteps(api, gcs_bucket, build_artifact_hash, device_type, pave,
              requires_secrets, test_in_shards, upload_to_catapult,
              collect_timeout_secs, debug_symbol_gcs_bucket, test_async,
-             per_test_timeout_secs, use_runtests, variants):
+             per_test_timeout_secs, use_runtests, variants, pave_from_gcs):
   upload_results = bool(gcs_bucket)
   # Intended to be a minimal amount of code to create a valid FuchsiaBuildResults object.
   checkout_root = api.path['start_dir']
@@ -123,6 +125,8 @@
       collect_timeout_secs=collect_timeout_secs,
       per_test_timeout_secs=per_test_timeout_secs,
       use_runtests=use_runtests,
+      pave_from_gcs=pave_from_gcs,
+      default_service_account='default_service_account',
   )
   spec = Fuchsia(
       test=test_spec,
@@ -141,7 +145,10 @@
         spec.test.swarming_expiration_timeout_secs,
         spec.test.swarming_io_timeout_secs,
         spec.test.use_runtests,
-        timeout_secs=spec.test.timeout_secs)
+        timeout_secs=spec.test.timeout_secs,
+        default_service_account=test_spec.default_service_account,
+        pave_from_gcs=test_spec.pave_from_gcs,
+    )
     orchestration_inputs = api.build.TestOrchestrationInputs.from_build_results(
         build_results, shard_requests)
     testing_tasks = api.testing.test_in_shards(
@@ -161,7 +168,10 @@
         requires_secrets=test_spec.requires_secrets,
         swarming_expiration_timeout_secs=spec.test
         .swarming_expiration_timeout_secs,
-        swarming_io_timeout_secs=spec.test.swarming_io_timeout_secs)
+        swarming_io_timeout_secs=spec.test.swarming_io_timeout_secs,
+        default_service_account=test_spec.default_service_account,
+        pave_from_gcs=test_spec.pave_from_gcs,
+    )
     orchestration_inputs = api.build.TestOrchestrationInputs.from_build_results(
         build_results, shard_requests)
     if test_async:
@@ -684,7 +694,8 @@
       # It's only here to minimize diffs during an unrelated change.
       properties={
           'requires_secrets': False,
-          'test_async': True
+          'test_async': True,
+          'pave_from_gcs': False
       },
       enable_retries=False,
   )
diff --git a/recipe_modules/testing_requests/api.py b/recipe_modules/testing_requests/api.py
index 26cc6e7..6d5a995 100644
--- a/recipe_modules/testing_requests/api.py
+++ b/recipe_modules/testing_requests/api.py
@@ -31,9 +31,17 @@
 class _TaskRequester(object):
   """Creates requests for swarming tasks that run tests."""
 
-  def __init__(self, api, buildbucket_build, per_test_timeout_secs, pool,
-               swarming_expiration_timeout_secs, swarming_io_timeout_secs,
-               timeout_secs, use_runtests):
+  def __init__(self,
+               api,
+               buildbucket_build,
+               per_test_timeout_secs,
+               pool,
+               swarming_expiration_timeout_secs,
+               swarming_io_timeout_secs,
+               timeout_secs,
+               use_runtests,
+               default_service_account,
+               pave_from_gcs=False):
     self._api = api
     self._buildbucket_build = buildbucket_build
     self._per_test_timeout_secs = per_test_timeout_secs
@@ -42,12 +50,15 @@
     self._swarming_io_timeout_secs = swarming_io_timeout_secs
     self._timeout_secs = timeout_secs
     self._use_runtests = use_runtests
+    self._default_service_account = default_service_account
+    self._pave_from_gcs = pave_from_gcs
 
   def request(self, shard, build_results):
     # Copy since we modify it for each shard.
     build_results = copy.deepcopy(build_results)
 
     if self._api.testing_requests._uses_legacy_qemu(shard):
+      service_account = shard.service_account or self._default_service_account
       task_request = self._api.testing_requests._construct_legacy_qemu_task_request(
           task_name=shard.name,
           pool=self._pool,
@@ -59,7 +70,9 @@
           # secret_bytes is only supported in the deprecated testing code path.
           secret_bytes='',
           qemu_type=shard.device_type,
+          service_account=service_account,
           shard=shard,
+          pave_from_gcs=self._pave_from_gcs,
       )
     else:
       task_request = self._construct_test_task_request(
@@ -73,8 +86,6 @@
     Args:
       build_results (FuchsiaBuildResults): The Fuchsia build to test.
       shard (api.testsharder.Shard): A shard of tests.
-      timeout_secs (int): The amount of seconds to wait for the tests to execute
-        before giving up.
 
     Returns:
       An api.swarming.TaskRequest representing the swarming task request.
@@ -109,7 +120,8 @@
     # github.com/dart-lang/googleapis_auth authentication libraries. Such
     # libraries look for a metadata server under environment variables
     # like $GCE_METADATA_HOST, which LUCI emulates.
-    if shard.service_account:
+    service_account = shard.service_account or self._default_service_account
+    if service_account:
       # TODO(fxbug.dev/37142): Find a way to use the version that LUCI is
       # currently using, instead of 'latest'.
       ensure_file.add_package('infra/tools/luci-auth/${platform}', 'latest')
@@ -122,12 +134,16 @@
     else:
       dimensions.update(shard.dimensions)
 
+    image_manifest = IMAGES_JSON
+    if self._pave_from_gcs:
+      image_manifest = '%s/%s' % (self._api.artifacts.image_url(), IMAGES_JSON)
+
     if shard.targets_fuchsia:
       botanist_cmd = [
           './botanist',
           '-level', BOTANIST_LOG_LEVEL,
           'run',
-          '-images', IMAGES_JSON,
+          '-images', image_manifest,
           '-timeout', '%ds' % self._timeout_secs,
           '-syslog', self._api.testing_requests.SYSLOG_NAME,
           '-serial-log', self._api.testing_requests.SERIAL_LOG_NAME,
@@ -189,16 +205,21 @@
     outputs.append(self._api.testing_requests.TEST_RESULTS_ARCHIVE_NAME)
 
     isolated_hash = self._api.testing_requests._isolate_build_artifacts(
-        isolate_tree, build_results, shard=shard, test_bot_cpu=test_bot_cpu)
+        isolate_tree,
+        build_results,
+        shard=shard,
+        test_bot_cpu=test_bot_cpu,
+        pave_from_gcs=self._pave_from_gcs)
 
     env_name = '%s-%s' % (shard.device_type or shard.os, build_results.target)
     tags = {'test_environment_name': [env_name]}
 
     request = (self._api.swarming.task_request().
         with_name(shard.name).
-        with_service_account(shard.service_account).
         with_tags(tags)
     ) #yapf: disable
+    if service_account:
+      request = request.with_service_account(service_account)
     return request.with_slice(0, request[0].
       with_command(cmd).
       with_isolated(isolated_hash).
@@ -272,6 +293,8 @@
       swarming_expiration_timeout_secs,
       swarming_io_timeout_secs,
       use_runtests,
+      default_service_account=None,
+      pave_from_gcs=False,
       # TODO(garymm): Remove default value.
       # We should always get this from a spec.
       timeout_secs=40 * 60):
@@ -287,10 +310,12 @@
       shards (list of testsharder.Shard): Test shards.
       use_runtests (bool): Whether to use runtests (or else run_test_component)
         when executing tests on target.
+      default_service_account (str|None): The default service account to run the
+        test task with. This is required for fetching images from GCS.
+      pave_from_gcs (bool): Whether to pave with images from GCS or not.
       timeout_secs (int): The amount of seconds to wait for the tests to execute
         before giving up.
     """
-
     self.m.minfs.minfs_path = build_results.minfs
     self.m.zbi.zbi_path = build_results.zbi
     # This modifies the build artifacts so must be done before calling
@@ -310,6 +335,8 @@
         swarming_io_timeout_secs=swarming_io_timeout_secs,
         timeout_secs=timeout_secs,
         use_runtests=use_runtests,
+        default_service_account=default_service_account,
+        pave_from_gcs=pave_from_gcs,
     )
     shard_requests = []
     for s in shards:
@@ -326,7 +353,9 @@
                                 pave,
                                 requires_secrets=False,
                                 swarming_expiration_timeout_secs=18000,
-                                swarming_io_timeout_secs=5 * 60):
+                                swarming_io_timeout_secs=5 * 60,
+                                default_service_account=None,
+                                pave_from_gcs=False):
     """Returns a swarming task request for testing in the deprecated way.
 
     Args:
@@ -343,6 +372,9 @@
         task, once scheduled (enforced by swarming).
       swarming_io_timeout_secs (int): The swarming task will be killed if it does
         not produce any output for this long.
+      default_service_account (str|None): The default service account to run the
+        task with.
+      pave_from_gcs (bool): Whether to pave with images from GCS or not.
 
     Returns:
       A list of a single ShardTaskRequest.
@@ -360,6 +392,7 @@
         device_type=device_type,
         pave=pave,
         test_cmds=test_cmds,
+        in_place=pave_from_gcs,
     )
 
     if self.m.emu.is_emulator_type(device_type):
@@ -375,6 +408,8 @@
           swarming_io_timeout_secs=swarming_io_timeout_secs,
           secret_bytes=secret_bytes,
           qemu_type=device_type,
+          service_account=default_service_account,
+          pave_from_gcs=pave_from_gcs,
       )
     else:
       task = self._construct_device_task_request(
@@ -386,6 +421,8 @@
           timeout_secs=timeout_secs,
           swarming_expiration_timeout_secs=swarming_expiration_timeout_secs,
           swarming_io_timeout_secs=swarming_io_timeout_secs,
+          service_account=default_service_account,
+          pave_from_gcs=pave_from_gcs,
       )
     # In the deprecated testing code paths, shards are not used, but it makes
     # other code simpler to have a valid shard here.
@@ -450,6 +487,8 @@
                                           swarming_io_timeout_secs,
                                           secret_bytes,
                                           qemu_type,
+                                          service_account,
+                                          pave_from_gcs=False,
                                           shard=None):
     """Constructs a Swarming task request which runs Fuchsia tests inside QEMU.
 
@@ -463,6 +502,8 @@
         before giving up.
       secret_bytes (str): secret bytes to pass to the QEMU task.
       qemu_type (str): type of qemu, either QEMU or AEMU.
+      service_account (str|None): The service account to run the task with.
+      pave_from_gcs (bool): Whether to pave with images from GCS or not.
       shard (api.testsharder.Shard|None): The shard associated with the task or
         None if it's not a shard.
 
@@ -486,30 +527,40 @@
     minfs_image_path = isolate_tree.root.join(self.TEST_RESULTS_MINFS_NAME)
     self.m.minfs.create(minfs_image_path, '3584M', name='create test image')
 
+    cmd = []
     ensure_file = self.m.cipd.EnsureFile()
+    if service_account:
+      # TODO(fxbug.dev/37142): Find a way to use the version that LUCI is
+      # currently using, instead of 'latest'.
+      ensure_file.add_package('infra/tools/luci-auth/${platform}', 'latest')
+      cmd.extend(['./luci-auth', 'context', '--'])
 
-    botanist_cmd = [
+    if secret_bytes:
+      # Wrap botanist command with secretshim which starts the secrets server
+      # before running the following command.
+      cmd.append('./secretshim')
+      ensure_file.add_package('fuchsia/infra/secretshim/${platform}',
+                              SECRETSHIM_CIPD_VERSION)
+
+    image_manifest = IMAGES_JSON
+    if pave_from_gcs:
+      image_manifest = '%s/%s' % (self.m.artifacts.image_url(), IMAGES_JSON)
+
+    cmd.extend([
       './botanist',
       '-level', BOTANIST_LOG_LEVEL,
       'qemu',
       '-type', '%s' % qemu_type.lower(),
       '-qemu-dir', './%s/bin' % qemu_type.lower(),
-      '-images', IMAGES_JSON,
+      '-images', image_manifest,
       '-arch', build_results.target,
       '-minfs', self.TEST_RESULTS_MINFS_NAME,
       '-pci-addr', TEST_FS_PCI_ADDR,
       '-use-kvm'
-    ] # yapf: disable
-
-    if secret_bytes:
-      # Wrap botanist command with secretshim which starts the secrets server
-      # before running the following command.
-      botanist_cmd = ['./secretshim'] + botanist_cmd
-      ensure_file.add_package('fuchsia/infra/secretshim/${platform}',
-                              SECRETSHIM_CIPD_VERSION)
+    ]) # yapf: disable
 
     if [v for v in ['asan', 'profile'] if v in build_results.variants]:
-      botanist_cmd.extend([
+      cmd.extend([
           '-cpu',
           str(8),
           '-memory',
@@ -521,8 +572,8 @@
     # of `system` (i.e., running after the system partition is mounted).
     storage_free_build = STORAGE_FULL not in build_results.images
     arg_key = 'zircon.autorun.%s' % ('boot' if storage_free_build else 'system')
-    botanist_cmd.append('%s=/boot/bin/sh+/boot/%s' %
-                        (arg_key, self._get_runcmds_path_per_shard(shard)))
+    cmd.append('%s=/boot/bin/sh+/boot/%s' %
+               (arg_key, self._get_runcmds_path_per_shard(shard)))
 
     isolated_hash = self._isolate_build_artifacts(
         isolate_tree,
@@ -530,6 +581,7 @@
         # To take advantage of KVM, we execute QEMU-arm tasks on arm hardware.
         test_bot_cpu=build_results.target,
         legacy_qemu=True,
+        pave_from_gcs=pave_from_gcs,
     )
 
     if qemu_type == 'AEMU':
@@ -546,8 +598,10 @@
     }
     request = self.m.swarming.task_request().with_name(task_name).with_tags(
         tags)
+    if service_account:
+      request = request.with_service_account(service_account)
     return (request.with_slice(0, request[0].
-      with_command(botanist_cmd).
+      with_command(cmd).
       with_isolated(isolated_hash).
       with_dimensions(pool=pool, os='Debian', cpu=build_results.target, kvm='1').
       with_io_timeout_secs(swarming_io_timeout_secs).
@@ -558,10 +612,17 @@
       with_cipd_ensure_file(ensure_file)
     )) #yapf: disable
 
-  def _construct_device_task_request(self, task_name, device_type,
-                                     build_results, pool, pave, timeout_secs,
+  def _construct_device_task_request(self,
+                                     task_name,
+                                     device_type,
+                                     build_results,
+                                     pool,
+                                     pave,
+                                     timeout_secs,
                                      swarming_expiration_timeout_secs,
-                                     swarming_io_timeout_secs):
+                                     swarming_io_timeout_secs,
+                                     service_account,
+                                     pave_from_gcs=False):
     """Constructs a Swarming task request to run Fuchsia tests on a device.
 
     Expects the build and artifacts to be at the same place they were at
@@ -573,32 +634,45 @@
       pave (bool): Whether or not the build artifacts should be paved.
       timeout_secs (int): The amount of seconds to wait for the tests to execute
         before giving up.
+      service_account (str|None): The service account to run the task with.
+      pave_from_gcs (bool): Whether to pave with images from GCS or not.
 
     Returns:
       An api.swarming.TaskRequest representing the swarming task request.
     """
+    cmd = []
+    ensure_file = self.m.cipd.EnsureFile()
+    if service_account:
+      # TODO(fxbug.dev/37142): Find a way to use the version that LUCI is
+      # currently using, instead of 'latest'.
+      ensure_file.add_package('infra/tools/luci-auth/${platform}', 'latest')
+      cmd.extend(['./luci-auth', 'context', '--'])
+
+    image_manifest = IMAGES_JSON
+    if pave_from_gcs:
+      image_manifest = '%s/%s' % (self.m.artifacts.image_url(), IMAGES_JSON)
+
     # Construct the botanist command.
-    botanist_cmd = [
+    cmd.extend([
       './botanist',
       '-level', BOTANIST_LOG_LEVEL,
       'zedboot',
       '-config', BOTANIST_DEVICE_CONFIG,
-      '-images', IMAGES_JSON,
+      '-images', image_manifest,
       '-results-dir', self.results_dir_on_target,
       '-out', self.TEST_RESULTS_ARCHIVE_NAME,
       '-serial-log', self.SERIAL_LOG_NAME,
-    ] # yapf: disable
+    ]) # yapf: disable
 
     if not pave:
-      botanist_cmd.append('-netboot')
+      cmd.append('-netboot')
 
     # storage-full not being present signifies the exclusion of the system
     # partition, which means `boot` (i.e. running on boot) must be used instead
     # of `system` (i.e., running after the system partition is mounted).
     storage_free_build = STORAGE_FULL not in build_results.images
     arg_key = 'zircon.autorun.%s' % ('boot' if storage_free_build else 'system')
-    botanist_cmd.append('%s=/boot/bin/sh+/boot/%s' %
-                        (arg_key, RUNCMDS_BOOTFS_PATH))
+    cmd.append('%s=/boot/bin/sh+/boot/%s' % (arg_key, RUNCMDS_BOOTFS_PATH))
 
     # To freely archive files from the build directory, the source, and those we
     # dynamically create, we create a tree of symlinks in a fresh directory and
@@ -607,7 +681,8 @@
     # directory without fear of collision, and (c) not having to isolate
     # extraneous files.
     isolate_tree = self.m.file.symlink_tree(root=self.m.path.mkdtemp('isolate'))
-    isolated_hash = self._isolate_build_artifacts(isolate_tree, build_results)
+    isolated_hash = self._isolate_build_artifacts(
+        isolate_tree, build_results, pave_from_gcs=pave_from_gcs)
 
     dimensions = {
         'pool': pool,
@@ -618,14 +693,17 @@
     tags = {'test_environment_name': [env_name]}
     request = self.m.swarming.task_request().with_name(task_name).with_tags(
         tags)
+    if service_account:
+      request = request.with_service_account(service_account)
     return (request.with_slice(0, request[0].
-      with_command(botanist_cmd).
+      with_command(cmd).
       with_isolated(isolated_hash).
       with_dimensions(**dimensions).
       with_expiration_secs(swarming_expiration_timeout_secs).
       with_io_timeout_secs(swarming_io_timeout_secs).
       with_execution_timeout_secs(timeout_secs).
-      with_outputs([self.TEST_RESULTS_ARCHIVE_NAME, self.SERIAL_LOG_NAME])
+      with_outputs([self.TEST_RESULTS_ARCHIVE_NAME, self.SERIAL_LOG_NAME]).
+      with_cipd_ensure_file(ensure_file)
     )) #yapf: disable
 
   def _create_runcmds_script(self, device_type, test_cmds, output_path):
@@ -664,12 +742,15 @@
     self.m.file.write_text('write runcmds', output_path,
                            '\n'.join(runcmds_bytes))
 
-  def _isolate_build_artifacts(self,
-                               isolate_tree,
-                               build_results,
-                               shard=None,
-                               test_bot_cpu='x64',
-                               legacy_qemu=False):
+  def _isolate_build_artifacts(
+      self,
+      isolate_tree,
+      build_results,
+      shard=None,
+      test_bot_cpu='x64',
+      legacy_qemu=False,
+      pave_from_gcs=False,
+  ):
     """Populates a tree with build artifacts and isolates it.
 
     Specifically, the following is linked into or created within the tree:
@@ -685,6 +766,7 @@
       test_bot_cpu (str|None): The host cpu of the bot running the test task.
       legacy_qemu (bool): Whether to only isolate the images needed to run QEMU
         alone.
+      pave_from_gcs (bool): Whether to pave with images from GCS or not.
 
     Returns:
       The isolated hash that may be used to reference and download the
@@ -701,7 +783,10 @@
     # TODO(IN-931): Remove `shard is None` condition once device and QEMU
     # codepaths are passing shard and using _construct_test_task_request().
     no_shard = shard is None
-    if no_shard or shard.targets_fuchsia:
+
+    # If paving from GCS, then we don't need to ship images over to the tester
+    # via isolated.
+    if not pave_from_gcs and (no_shard or shard.targets_fuchsia):
       image_list = build_results.images.values()
       # In the case of an emulated target, we restrict what we isolate to the
       # bare essentials to avoid the needless downloading of several gigabytes
diff --git a/recipe_modules/testing_requests/examples/full.expected/aemu.json b/recipe_modules/testing_requests/examples/full.expected/aemu.json
index bd9ee3a..142a6bc 100644
--- a/recipe_modules/testing_requests/examples/full.expected/aemu.json
+++ b/recipe_modules/testing_requests/examples/full.expected/aemu.json
@@ -1195,50 +1195,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard NAME.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/dep\": [\"/path/to/dep\"], \"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"/path/to/dep\": [\"/path/to/dep\"], \"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard NAME.create tree of build artifacts",
diff --git a/recipe_modules/testing_requests/examples/full.expected/deprecated_non_emu.json b/recipe_modules/testing_requests/examples/full.expected/deprecated_non_emu.json
index f393f3a..ad2ac32 100644
--- a/recipe_modules/testing_requests/examples/full.expected/deprecated_non_emu.json
+++ b/recipe_modules/testing_requests/examples/full.expected/deprecated_non_emu.json
@@ -1146,7 +1146,7 @@
     "cmd": [
       "[START_DIR]/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/out/default/test-infra.zbi",
+      "[START_DIR]/out/default/netboot.zbi",
       "[START_DIR]/out/default/netboot.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1155,91 +1155,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_1/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_1/symbol-archive.tgz\"], \"[START_DIR]/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_1/test-infra.zbi\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_1/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
diff --git a/recipe_modules/testing_requests/examples/full.expected/legacy_aemu.json b/recipe_modules/testing_requests/examples/full.expected/legacy_aemu.json
index e8ed2d3..a784ddb 100644
--- a/recipe_modules/testing_requests/examples/full.expected/legacy_aemu.json
+++ b/recipe_modules/testing_requests/examples/full.expected/legacy_aemu.json
@@ -1194,50 +1194,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard NAME.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard NAME.create tree of build artifacts",
diff --git a/recipe_modules/testing_requests/examples/full.expected/legacy_qemu.json b/recipe_modules/testing_requests/examples/full.expected/legacy_qemu.json
index 7df21f9..503f041 100644
--- a/recipe_modules/testing_requests/examples/full.expected/legacy_qemu.json
+++ b/recipe_modules/testing_requests/examples/full.expected/legacy_qemu.json
@@ -1194,50 +1194,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard NAME.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard NAME.create tree of build artifacts",
diff --git a/recipe_modules/testing_requests/examples/full.expected/not-emu.json b/recipe_modules/testing_requests/examples/full.expected/not-emu.json
index f346f3a..ad7c691 100644
--- a/recipe_modules/testing_requests/examples/full.expected/not-emu.json
+++ b/recipe_modules/testing_requests/examples/full.expected/not-emu.json
@@ -1156,92 +1156,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"build-archive.zip\", \n    \"type\": \"zip\", \n    \"name\": \"archive\"\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"symbol-archive.tgz\", \n    \"type\": \"tgz\", \n    \"name\": \"symbol-archive\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard NAME.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"build-archive.zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zip\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"symbol-archive.tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"tgz\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"symbol-archive\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/dep\": [\"/path/to/dep\"], \"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/build-archive.zip\": [\"[CLEANUP]/isolate_tmp_1/build-archive.zip\"], \"[START_DIR]/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.esp.blk\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.sparse.blk\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_1/netboot.zbi\"], \"[START_DIR]/out/default/symbol-archive.tgz\": [\"[CLEANUP]/isolate_tmp_1/symbol-archive.tgz\"], \"[START_DIR]/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_1/zircon-r.zbi\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"/path/to/dep\": [\"/path/to/dep\"], \"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard NAME.create tree of build artifacts",
diff --git a/recipe_modules/testing_requests/examples/full.expected/qemu.json b/recipe_modules/testing_requests/examples/full.expected/qemu.json
index c0ec2bd..eceb825 100644
--- a/recipe_modules/testing_requests/examples/full.expected/qemu.json
+++ b/recipe_modules/testing_requests/examples/full.expected/qemu.json
@@ -1195,50 +1195,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_1/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard NAME.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/dep\": [\"/path/to/dep\"], \"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_1/fuchsia.zbi\"], \"[START_DIR]/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_1/fvm.blk\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_1/multiboot.bin\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
+      "{\"/path/to/dep\": [\"/path/to/dep\"], \"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_1/private_key\"], \"[START_DIR]/out/default/linux_arm64/botanist\": [\"[CLEANUP]/isolate_tmp_1/botanist\"], \"[START_DIR]/out/default/linux_arm64/testrunner\": [\"[CLEANUP]/isolate_tmp_1/testrunner\"], \"[START_DIR]/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_1/bootserver_new\"], \"[START_DIR]/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_1/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard NAME.create tree of build artifacts",
diff --git a/recipe_modules/testing_requests/examples/full.py b/recipe_modules/testing_requests/examples/full.py
index 3098863..2d1fc86 100644
--- a/recipe_modules/testing_requests/examples/full.py
+++ b/recipe_modules/testing_requests/examples/full.py
@@ -74,12 +74,14 @@
         Property(kind=bool, help='Whether to use runtests', default=False),
     'variants':
         Property(kind=list, help='GN variants', default=[]),
+    'pave_from_gcs':
+        Property(kind=bool, help='Whether to pave from GCS', default=True),
 }
 
 
 def RunSteps(api, build_artifact_hash, device_type, pave, requires_secrets,
              test_in_shards, collect_timeout_secs, deprecated,
-             per_test_timeout_secs, use_runtests, variants):
+             per_test_timeout_secs, use_runtests, variants, pave_from_gcs):
 
   # Intended to be a minimal amount of code to create a valid FuchsiaBuildResults object.
   checkout_root = api.path['start_dir']
@@ -106,6 +108,8 @@
       collect_timeout_secs=collect_timeout_secs,
       per_test_timeout_secs=per_test_timeout_secs,
       use_runtests=use_runtests,
+      pave_from_gcs=pave_from_gcs,
+      default_service_account='default_service_account',
   )
 
   if deprecated:
@@ -116,7 +120,10 @@
         test_spec.pool,
         test_spec.timeout_secs,
         test_spec.pave,
-        requires_secrets=test_spec.requires_secrets)
+        requires_secrets=test_spec.requires_secrets,
+        default_service_account=test_spec.default_service_account,
+        pave_from_gcs=test_spec.pave_from_gcs,
+    )
     assert len(shard_requests) == 1
   else:
     shards = (api.testsharder.Shard(
@@ -134,6 +141,7 @@
         build_results, api.buildbucket.build, test_spec.per_test_timeout_secs,
         test_spec.pool, shards, test_spec.swarming_expiration_timeout_secs,
         test_spec.swarming_io_timeout_secs, test_spec.use_runtests,
+        test_spec.default_service_account, test_spec.pave_from_gcs,
         test_spec.timeout_secs)
 
 
@@ -149,8 +157,10 @@
 
   # Test cases for running Fuchsia tests as a swarming task.
   yield (test('deprecated_with_secrets') + api.properties(
-      deprecated=True, requires_secrets=True, per_test_timeout_secs=1) +
-         api.testing_requests.secrets_step_data())
+      deprecated=True,
+      requires_secrets=True,
+      per_test_timeout_secs=1,
+      pave_from_gcs=False) + api.testing_requests.secrets_step_data())
 
   yield test('deprecated_non_emu') + api.properties(
       deprecated=True, pave=False, device_type='DEVICE TYPE')
diff --git a/recipes/fuchsia.expected/ci.json b/recipes/fuchsia.expected/ci.json
index 6dd8eef..52fe72a 100644
--- a/recipes/fuchsia.expected/ci.json
+++ b/recipes/fuchsia.expected/ci.json
@@ -28,7 +28,9 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2075,50 +2077,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2264,7 +2227,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/commit_snapshot.json b/recipes/fuchsia.expected/commit_snapshot.json
index 24077fc..b3f2083 100644
--- a/recipes/fuchsia.expected/commit_snapshot.json
+++ b/recipes/fuchsia.expected/commit_snapshot.json
@@ -29,7 +29,9 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2094,50 +2096,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2283,7 +2246,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/cq.json b/recipes/fuchsia.expected/cq.json
index 0b38b06..10b78b9 100644
--- a/recipes/fuchsia.expected/cq.json
+++ b/recipes/fuchsia.expected/cq.json
@@ -130,7 +130,9 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2255,50 +2257,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_4/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_4/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_4/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2444,7 +2407,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"try\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"try\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/deprecated_test.json b/recipes/fuchsia.expected/deprecated_test.json
index c22a6ab..8737a4a 100644
--- a/recipes/fuchsia.expected/deprecated_test.json
+++ b/recipes/fuchsia.expected/deprecated_test.json
@@ -28,7 +28,9 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 18000@@@",
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -1979,7 +1981,7 @@
     "cmd": [
       "[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/fuchsia/out/default/test-infra.zbi",
+      "[START_DIR]/fuchsia/out/default/fuchsia.zbi",
       "[START_DIR]/fuchsia/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -1996,49 +1998,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_3/test-infra.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -2166,7 +2130,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"x64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"output.fs\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"x64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"output.fs\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/max_shard_size.json b/recipes/fuchsia.expected/max_shard_size.json
index c9a30fd..1c150bb 100644
--- a/recipes/fuchsia.expected/max_shard_size.json
+++ b/recipes/fuchsia.expected/max_shard_size.json
@@ -29,7 +29,9 @@
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
       "@@@STEP_LOG_LINE@textproto@  max_shard_size: 200@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2078,50 +2080,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2267,7 +2230,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/patchset_snapshot.json b/recipes/fuchsia.expected/patchset_snapshot.json
index af6f105..82f0b7e 100644
--- a/recipes/fuchsia.expected/patchset_snapshot.json
+++ b/recipes/fuchsia.expected/patchset_snapshot.json
@@ -131,7 +131,9 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2281,50 +2283,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_4/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_4/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_4/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2470,7 +2433,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"try\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"garnet\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"try\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"garnet\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/profile.json b/recipes/fuchsia.expected/profile.json
index 0a3525f..45ead67 100644
--- a/recipes/fuchsia.expected/profile.json
+++ b/recipes/fuchsia.expected/profile.json
@@ -32,8 +32,10 @@
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
       "@@@STEP_LOG_LINE@textproto@  use_runtests: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-build\"@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
@@ -2420,50 +2422,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2609,7 +2572,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-use-runtests\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-use-runtests\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/requires_secrets.json b/recipes/fuchsia.expected/requires_secrets.json
index 30befc5..e029ffb 100644
--- a/recipes/fuchsia.expected/requires_secrets.json
+++ b/recipes/fuchsia.expected/requires_secrets.json
@@ -29,7 +29,9 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 18000@@@",
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -1980,7 +1982,7 @@
     "cmd": [
       "[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/fuchsia/out/default/test-infra.zbi",
+      "[START_DIR]/fuchsia/out/default/fuchsia.zbi",
       "[START_DIR]/fuchsia/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -2050,49 +2052,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_3/test-infra.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -2220,7 +2184,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"images.json\", \"-arch\", \"x64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
+      "{\"requests\": [{\"name\": \"all tests\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\", \"uses_legacy_qemu:true\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/infra/secretshim/${platform}\", \"path\": \".\", \"version\": \"git_revision:63ab3ac613fceb52ac49b63b43fce841a2585645\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./secretshim\", \"./botanist\", \"-level\", \"debug\", \"qemu\", \"-type\", \"qemu\", \"-qemu-dir\", \"./qemu/bin\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-arch\", \"x64\", \"-minfs\", \"output.fs\", \"-pci-addr\", \"06.0\", \"-use-kvm\", \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"output.fs\"], \"secret_bytes\": \"e30=\"}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/with_archives.json b/recipes/fuchsia.expected/with_archives.json
index 54c4dc2..dc26eb9 100644
--- a/recipes/fuchsia.expected/with_archives.json
+++ b/recipes/fuchsia.expected/with_archives.json
@@ -30,7 +30,9 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2079,50 +2081,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2268,7 +2231,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.expected/with_uploading.json b/recipes/fuchsia.expected/with_uploading.json
index 0913451..e01d518 100644
--- a/recipes/fuchsia.expected/with_uploading.json
+++ b/recipes/fuchsia.expected/with_uploading.json
@@ -30,8 +30,10 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
       "@@@STEP_LOG_LINE@textproto@  per_test_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  upload_results: true@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-build\"@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
@@ -2418,50 +2420,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard QEMU.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/.ssh/pkey\": [\"[CLEANUP]/isolate_tmp_3/private_key\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard QEMU.create tree of build artifacts",
@@ -2607,7 +2570,7 @@
       "-server",
       "https://example.swarmingserver.appspot.com",
       "-json-input",
-      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
+      "{\"requests\": [{\"name\": \"QEMU\", \"priority\": \"200\", \"service_account\": \"service_account\", \"tags\": [\"test_environment_name:QEMU-x64\"], \"task_slices\": [{\"expiration_secs\": \"18000\", \"properties\": {\"cipd_input\": {\"packages\": [{\"package_name\": \"infra/tools/luci-auth/${platform}\", \"path\": \".\", \"version\": \"latest\"}, {\"package_name\": \"fuchsia/third_party/qemu/${platform}\", \"path\": \"qemu\", \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\"}]}, \"command\": [\"./luci-auth\", \"context\", \"--\", \"./botanist\", \"-level\", \"debug\", \"run\", \"-images\", \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \"-timeout\", \"1800s\", \"-syslog\", \"syslog.txt\", \"-serial-log\", \"serial.txt\", \"-ssh\", \"private_key\", \"-config\", \"./qemu.json\", \"./testrunner\", \"-archive\", \"out.tar\", \"-per-test-timeout\", \"300s\", \"tests.json\"], \"containment\": {\"containment_type\": \"NONE\", \"limit_processes\": \"0\", \"limit_total_committed_memory\": \"0\", \"lower_priority\": false}, \"dimensions\": [{\"key\": \"kvm\", \"value\": \"1\"}, {\"key\": \"os\", \"value\": \"Debian\"}, {\"key\": \"cpu\", \"value\": \"x64\"}, {\"key\": \"pool\", \"value\": \"fuchsia.tests\"}], \"env\": [{\"key\": \"BUILD_PRODUCT\", \"value\": \"products/core.gni\"}, {\"key\": \"FUCHSIA_TEST_OUTDIR\", \"value\": \"${ISOLATED_OUTDIR}\"}, {\"key\": \"INPUT_COMMIT_HOST\", \"value\": \"fuchsia.googlesource.com\"}, {\"key\": \"LSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"BUILDBUCKET_BUCKET\", \"value\": \"ci\"}, {\"key\": \"BUILD_TARGET\", \"value\": \"x64\"}, {\"key\": \"ASAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"UBSAN_SYMBOLIZER_PATH\", \"value\": \"llvm-symbolizer\"}, {\"key\": \"INPUT_COMMIT_PROJECT\", \"value\": \"fuchsia\"}, {\"key\": \"BUILDER_NAME\", \"value\": \"builder\"}, {\"key\": \"INPUT_COMMIT_REF\", \"value\": \"refs/heads/master\"}, {\"key\": \"FUCHSIA_DEVICE_TYPE\", \"value\": \"QEMU\"}, {\"key\": \"BUILDBUCKET_ID\", \"value\": \"8945511751514863184\"}, {\"key\": \"BUILD_BOARD\", \"value\": \"boards/x64.gni\"}, {\"key\": \"BUILD_CREATE_TIME\", \"value\": \"1527292217\"}, {\"key\": \"BUILD_TYPE\", \"value\": \"debug\"}], \"env_prefixes\": [], \"execution_timeout_secs\": \"1800\", \"grace_period_secs\": \"30\", \"idempotent\": false, \"inputs_ref\": {\"isolated\": \"[dummy hash]\", \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \"namespace\": \"default-gzip\"}, \"io_timeout_secs\": \"300\", \"outputs\": [\"syslog.txt\", \"serial.txt\", \"out.tar\"]}}]}]}",
       "-json-output",
       "/path/to/tmp/json",
       "-cancel-extra-tasks"
diff --git a/recipes/fuchsia.py b/recipes/fuchsia.py
index 46134e5..c2d07e5 100644
--- a/recipes/fuchsia.py
+++ b/recipes/fuchsia.py
@@ -261,7 +261,10 @@
           spec.test.swarming_expiration_timeout_secs,
           spec.test.swarming_io_timeout_secs,
           spec.test.use_runtests,
-          timeout_secs=spec.test.timeout_secs)
+          timeout_secs=spec.test.timeout_secs,
+          default_service_account=spec.test.default_service_account,
+          pave_from_gcs=spec.test.pave_from_gcs,
+      )
     else:
       shard_requests = api.testing_requests.deprecated_shard_requests(
           build,
@@ -274,6 +277,8 @@
           swarming_expiration_timeout_secs=spec.test
           .swarming_expiration_timeout_secs,
           swarming_io_timeout_secs=spec.test.swarming_io_timeout_secs,
+          default_service_account=spec.test.default_service_account,
+          pave_from_gcs=spec.test.pave_from_gcs,
       )
 
     orchestration_inputs = api.build.TestOrchestrationInputs.from_build_results(
@@ -450,7 +455,9 @@
           swarming_io_timeout_secs=5 * 60,
           upload_results=bool(gcs_bucket),
           use_runtests='profile' in variants,
+          default_service_account='service_account',
           per_test_timeout_secs=5 * 60,
+          pave_from_gcs=True,
       )
       if not test_in_shards:
         test_spec.device_type = 'QEMU'
diff --git a/recipes/fuchsia/build.expected/default.json b/recipes/fuchsia/build.expected/default.json
index c0c4bd4..0f88e1b 100644
--- a/recipes/fuchsia/build.expected/default.json
+++ b/recipes/fuchsia/build.expected/default.json
@@ -32,6 +32,8 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-infra\"@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
@@ -2345,82 +2347,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.esp.blk\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.sparse.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_3/netboot.zbi\"], \"[START_DIR]/fuchsia/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_3/zircon-r.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -2534,7 +2465,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_4/task_requests.json"
     ],
     "infra_step": true,
@@ -2559,6 +2490,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
@@ -2572,12 +2512,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
@@ -2653,7 +2596,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
diff --git a/recipes/fuchsia/build.expected/default_cq.json b/recipes/fuchsia/build.expected/default_cq.json
index 16b8310..9449235 100644
--- a/recipes/fuchsia/build.expected/default_cq.json
+++ b/recipes/fuchsia/build.expected/default_cq.json
@@ -132,6 +132,8 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2210,82 +2212,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.esp.blk\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.sparse.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_4/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_4/netboot.zbi\"], \"[START_DIR]/fuchsia/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_4/zircon-r.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -2399,7 +2330,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json"
     ],
     "infra_step": true,
@@ -2424,6 +2355,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
@@ -2437,12 +2377,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
@@ -2518,7 +2461,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
diff --git a/recipes/fuchsia/build.expected/non-numeric-parent-id.json b/recipes/fuchsia/build.expected/non-numeric-parent-id.json
index 18bec22..f405f88 100644
--- a/recipes/fuchsia/build.expected/non-numeric-parent-id.json
+++ b/recipes/fuchsia/build.expected/non-numeric-parent-id.json
@@ -32,6 +32,8 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@gcs_bucket: \"fuchsia-infra\"@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
@@ -2309,82 +2311,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.esp.blk\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_3/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.sparse.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_3/netboot.zbi\"], \"[START_DIR]/fuchsia/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_3/zircon-r.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -2498,7 +2429,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/not-a-number/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"ci\", \n              \"key\": \"BUILDBUCKET_BUCKET\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"fuchsia\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"builder\", \n              \"key\": \"BUILDER_NAME\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"1527292217\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/not-a-number/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/not-a-number/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"fuchsia.googlesource.com\", \n              \"key\": \"INPUT_COMMIT_HOST\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"ci\", \n              \"key\": \"BUILDBUCKET_BUCKET\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"fuchsia\", \n              \"key\": \"INPUT_COMMIT_PROJECT\"\n            }, \n            {\n              \"value\": \"builder\", \n              \"key\": \"BUILDER_NAME\"\n            }, \n            {\n              \"value\": \"refs/heads/master\", \n              \"key\": \"INPUT_COMMIT_REF\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"1527292217\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_4/task_requests.json"
     ],
     "infra_step": true,
@@ -2523,6 +2454,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
@@ -2536,12 +2476,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/not-a-number/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
@@ -2637,7 +2580,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
diff --git a/recipes/fuchsia/build.expected/not_test_in_shards.json b/recipes/fuchsia/build.expected/not_test_in_shards.json
index 12aa229..08dc9cf 100644
--- a/recipes/fuchsia/build.expected/not_test_in_shards.json
+++ b/recipes/fuchsia/build.expected/not_test_in_shards.json
@@ -29,6 +29,8 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_expiration_timeout_secs: 600@@@",
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -1996,7 +1998,7 @@
     "cmd": [
       "[START_DIR]/fuchsia/out/default.zircon/host-linux-x64/zbi",
       "--output",
-      "[START_DIR]/fuchsia/out/default/test-infra.zbi",
+      "[START_DIR]/fuchsia/out/default/fuchsia.zbi",
       "[START_DIR]/fuchsia/out/default/fuchsia.zbi",
       "--entry",
       "infra/runcmds=[CLEANUP]/runcmds"
@@ -2013,49 +2015,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"test-infra.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_3/images.json"
-    ],
-    "infra_step": true,
-    "name": "write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"test-infra.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_3/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_3/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/test-infra.zbi\": [\"[CLEANUP]/isolate_tmp_3/test-infra.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
+      "{\"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_3/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_3/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_3/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_3/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "create tree of build artifacts"
@@ -2152,7 +2116,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"output.fs\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \"qemu\", \n                \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\", \n                \"package_name\": \"fuchsia/third_party/qemu/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"1\", \n              \"key\": \"kvm\"\n            }, \n            {\n              \"value\": \"Debian\", \n              \"key\": \"os\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"cpu\"\n            }, \n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"qemu\", \n            \"-type\", \n            \"qemu\", \n            \"-qemu-dir\", \n            \"./qemu/bin\", \n            \"-images\", \n            \"images.json\", \n            \"-arch\", \n            \"x64\", \n            \"-minfs\", \n            \"output.fs\", \n            \"-pci-addr\", \n            \"06.0\", \n            \"-use-kvm\", \n            \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"\n          ], \n          \"env\": [], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"all tests\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:QEMU-x64\", \n      \"uses_legacy_qemu:true\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"output.fs\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }, \n              {\n                \"path\": \"qemu\", \n                \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\", \n                \"package_name\": \"fuchsia/third_party/qemu/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"1\", \n              \"key\": \"kvm\"\n            }, \n            {\n              \"value\": \"Debian\", \n              \"key\": \"os\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"cpu\"\n            }, \n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"qemu\", \n            \"-type\", \n            \"qemu\", \n            \"-qemu-dir\", \n            \"./qemu/bin\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \n            \"-arch\", \n            \"x64\", \n            \"-minfs\", \n            \"output.fs\", \n            \"-pci-addr\", \n            \"06.0\", \n            \"-use-kvm\", \n            \"zircon.autorun.system=/boot/bin/sh+/boot/infra/runcmds\"\n          ], \n          \"env\": [], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"all tests\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"test_environment_name:QEMU-x64\", \n      \"uses_legacy_qemu:true\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_4/task_requests.json"
     ],
     "infra_step": true,
@@ -2178,6 +2142,11 @@
       "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }, @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
       "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \"qemu\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"git_revision:533bf2563d0213a7e002d9fcde75519d30ffa70f\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"fuchsia/third_party/qemu/${platform}\"@@@",
@@ -2205,6 +2174,9 @@
       "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
@@ -2214,7 +2186,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"-qemu-dir\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"./qemu/bin\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-arch\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"x64\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-minfs\", @@@",
@@ -2237,7 +2209,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"all tests\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:QEMU-x64\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@      \"uses_legacy_qemu:true\"@@@",
diff --git a/recipes/fuchsia/build.expected/spec_remote_cq.json b/recipes/fuchsia/build.expected/spec_remote_cq.json
index 2663509..b463d55 100644
--- a/recipes/fuchsia/build.expected/spec_remote_cq.json
+++ b/recipes/fuchsia/build.expected/spec_remote_cq.json
@@ -132,6 +132,8 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2232,82 +2234,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.esp.blk\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.sparse.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_4/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_4/netboot.zbi\"], \"[START_DIR]/fuchsia/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_4/zircon-r.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -2421,7 +2352,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json"
     ],
     "infra_step": true,
@@ -2446,6 +2377,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
@@ -2459,12 +2399,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
@@ -2540,7 +2483,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
diff --git a/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json b/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json
index dbeee77..8709cce 100644
--- a/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json
+++ b/recipes/fuchsia/build.expected/spec_remote_cq_with_spec_revision.json
@@ -132,6 +132,8 @@
       "@@@STEP_LOG_LINE@textproto@  swarming_io_timeout_secs: 300@@@",
       "@@@STEP_LOG_LINE@textproto@  test_in_shards: true@@@",
       "@@@STEP_LOG_LINE@textproto@  timeout_secs: 1800@@@",
+      "@@@STEP_LOG_LINE@textproto@  default_service_account: \"service_account\"@@@",
+      "@@@STEP_LOG_LINE@textproto@  pave_from_gcs: true@@@",
       "@@@STEP_LOG_LINE@textproto@}@@@",
       "@@@STEP_LOG_LINE@textproto@artifact_gcs_bucket: \"fuchsia-infra-artifacts\"@@@",
       "@@@STEP_LOG_LINE@textproto@debug_symbol_gcs_bucket: \"debug-symbols\"@@@",
@@ -2232,82 +2234,11 @@
   },
   {
     "cmd": [
-      "vpython",
-      "-u",
-      "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
-      "--json-output",
-      "/path/to/tmp/json",
-      "copy",
-      "[\n  {\n    \"path\": \"multiboot.bin\", \n    \"type\": \"kernel\", \n    \"name\": \"qemu-kernel\"\n  }, \n  {\n    \"path\": \"fvm.sparse.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-sparse\", \n    \"bootserver_pave\": [\n      \"--fvm\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-a\", \n    \"bootserver_pave\": [\n      \"--boot\", \n      \"--zircona\"\n    ]\n  }, \n  {\n    \"path\": \"fuchsia.esp.blk\", \n    \"type\": \"blk\", \n    \"name\": \"efi\", \n    \"bootserver_pave\": [\n      \"--efi\"\n    ]\n  }, \n  {\n    \"path\": \"zircon-r.zbi\", \n    \"type\": \"zbi\", \n    \"name\": \"zircon-r\", \n    \"bootserver_pave\": [\n      \"--zircon-r\"\n    ]\n  }, \n  {\n    \"path\": \"netboot.zbi\", \n    \"bootserver_netboot\": [\n      \"--boot\"\n    ], \n    \"type\": \"zbi\", \n    \"name\": \"netboot\"\n  }, \n  {\n    \"path\": \"fvm.blk\", \n    \"type\": \"blk\", \n    \"name\": \"storage-full\"\n  }\n]",
-      "[CLEANUP]/isolate_tmp_4/images.json"
-    ],
-    "infra_step": true,
-    "name": "shard Vim2.write image manifest",
-    "~followup_annotations": [
-      "@@@STEP_NEST_LEVEL@1@@@",
-      "@@@STEP_LOG_LINE@images.json@[@@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"multiboot.bin\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"kernel\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"qemu-kernel\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.sparse.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-sparse\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--fvm\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-a\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\", @@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircona\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fuchsia.esp.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"efi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--efi\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"zircon-r.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"zircon-r\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_pave\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--zircon-r\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ]@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"netboot.zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"bootserver_netboot\": [@@@",
-      "@@@STEP_LOG_LINE@images.json@      \"--boot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@    ], @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"zbi\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"netboot\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }, @@@",
-      "@@@STEP_LOG_LINE@images.json@  {@@@",
-      "@@@STEP_LOG_LINE@images.json@    \"path\": \"fvm.blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"type\": \"blk\", @@@",
-      "@@@STEP_LOG_LINE@images.json@    \"name\": \"storage-full\"@@@",
-      "@@@STEP_LOG_LINE@images.json@  }@@@",
-      "@@@STEP_LOG_LINE@images.json@]@@@",
-      "@@@STEP_LOG_END@images.json@@@"
-    ]
-  },
-  {
-    "cmd": [
       "python",
       "-u",
       "RECIPE_MODULE[recipe_engine::file]/resources/symlink.py",
       "--link-json",
-      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/fuchsia.esp.blk\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.esp.blk\"], \"[START_DIR]/fuchsia/out/default/fuchsia.zbi\": [\"[CLEANUP]/isolate_tmp_4/fuchsia.zbi\"], \"[START_DIR]/fuchsia/out/default/fvm.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.blk\"], \"[START_DIR]/fuchsia/out/default/fvm.sparse.blk\": [\"[CLEANUP]/isolate_tmp_4/fvm.sparse.blk\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/out/default/multiboot.bin\": [\"[CLEANUP]/isolate_tmp_4/multiboot.bin\"], \"[START_DIR]/fuchsia/out/default/netboot.zbi\": [\"[CLEANUP]/isolate_tmp_4/netboot.zbi\"], \"[START_DIR]/fuchsia/out/default/zircon-r.zbi\": [\"[CLEANUP]/isolate_tmp_4/zircon-r.zbi\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
+      "{\"/path/to/test\": [\"/path/to/test\"], \"[START_DIR]/fuchsia/out/default/linux_x64/bootserver_new\": [\"[CLEANUP]/isolate_tmp_4/bootserver_new\"], \"[START_DIR]/fuchsia/out/default/linux_x64/botanist\": [\"[CLEANUP]/isolate_tmp_4/botanist\"], \"[START_DIR]/fuchsia/out/default/linux_x64/testrunner\": [\"[CLEANUP]/isolate_tmp_4/testrunner\"], \"[START_DIR]/fuchsia/prebuilt/third_party/llvm-symbolizer/linux_x64/llvm-symbolizer\": [\"[CLEANUP]/isolate_tmp_4/llvm-symbolizer\"]}"
     ],
     "infra_step": true,
     "name": "shard Vim2.create tree of build artifacts",
@@ -2421,7 +2352,7 @@
       "--json-output",
       "/path/to/tmp/json",
       "copy",
-      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
+      "[\n  {\n    \"priority\": \"200\", \n    \"task_slices\": [\n      {\n        \"expiration_secs\": \"600\", \n        \"properties\": {\n          \"outputs\": [\n            \"syslog.txt\", \n            \"serial.txt\", \n            \"out.tar\"\n          ], \n          \"inputs_ref\": {\n            \"isolatedserver\": \"https://example.isolateserver.appspot.com\", \n            \"namespace\": \"default-gzip\", \n            \"isolated\": \"[dummy hash]\"\n          }, \n          \"io_timeout_secs\": \"300\", \n          \"cipd_input\": {\n            \"packages\": [\n              {\n                \"path\": \".\", \n                \"version\": \"latest\", \n                \"package_name\": \"infra/tools/luci-auth/${platform}\"\n              }\n            ]\n          }, \n          \"grace_period_secs\": \"30\", \n          \"dimensions\": [\n            {\n              \"value\": \"fuchsia.tests\", \n              \"key\": \"pool\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"device_type\"\n            }\n          ], \n          \"idempotent\": false, \n          \"command\": [\n            \"./luci-auth\", \n            \"context\", \n            \"--\", \n            \"./botanist\", \n            \"-level\", \n            \"debug\", \n            \"run\", \n            \"-images\", \n            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", \n            \"-timeout\", \n            \"1800s\", \n            \"-syslog\", \n            \"syslog.txt\", \n            \"-serial-log\", \n            \"serial.txt\", \n            \"-repo\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/8945511751514863184/repository\", \n            \"-blobs\", \n            \"http://$GCS_PROXY_HOST/fuchsia-infra-artifacts/blobs\", \n            \"-config\", \n            \"/etc/botanist/config.json\", \n            \"./testrunner\", \n            \"-archive\", \n            \"out.tar\", \n            \"tests.json\"\n          ], \n          \"env\": [\n            {\n              \"value\": \"products/core.gni\", \n              \"key\": \"BUILD_PRODUCT\"\n            }, \n            {\n              \"value\": \"${ISOLATED_OUTDIR}\", \n              \"key\": \"FUCHSIA_TEST_OUTDIR\"\n            }, \n            {\n              \"value\": \"8945511751514863184\", \n              \"key\": \"BUILDBUCKET_ID\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"LSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"UBSAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"x64\", \n              \"key\": \"BUILD_TARGET\"\n            }, \n            {\n              \"value\": \"llvm-symbolizer\", \n              \"key\": \"ASAN_SYMBOLIZER_PATH\"\n            }, \n            {\n              \"value\": \"Khadas Vim2 Max\", \n              \"key\": \"FUCHSIA_DEVICE_TYPE\"\n            }, \n            {\n              \"value\": \"boards/x64.gni\", \n              \"key\": \"BUILD_BOARD\"\n            }, \n            {\n              \"value\": \"0\", \n              \"key\": \"BUILD_CREATE_TIME\"\n            }, \n            {\n              \"value\": \"debug\", \n              \"key\": \"BUILD_TYPE\"\n            }\n          ], \n          \"containment\": {\n            \"lower_priority\": false, \n            \"limit_processes\": \"0\", \n            \"containment_type\": \"NONE\", \n            \"limit_total_committed_memory\": \"0\"\n          }, \n          \"execution_timeout_secs\": \"1800\", \n          \"env_prefixes\": []\n        }\n      }\n    ], \n    \"name\": \"Vim2\", \n    \"service_account\": \"service_account\", \n    \"tags\": [\n      \"test_environment_name:Khadas Vim2 Max-x64\"\n    ]\n  }\n]",
       "[CLEANUP]/test-orchestration-inputs_tmp_5/task_requests.json"
     ],
     "infra_step": true,
@@ -2446,6 +2377,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@            \"isolated\": \"[dummy hash]\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"io_timeout_secs\": \"300\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          \"cipd_input\": {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"packages\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              {@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"path\": \".\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"version\": \"latest\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@                \"package_name\": \"infra/tools/luci-auth/${platform}\"@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@              }@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            ]@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@          }, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"grace_period_secs\": \"30\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"dimensions\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@            {@@@",
@@ -2459,12 +2399,15 @@
       "@@@STEP_LOG_LINE@task_requests.json@          ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"idempotent\": false, @@@",
       "@@@STEP_LOG_LINE@task_requests.json@          \"command\": [@@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"./luci-auth\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"context\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"--\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"./botanist\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-level\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"debug\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"run\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-images\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@            \"images.json\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@            \"gs://fuchsia-infra-artifacts/8945511751514863184/images/images.json\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-timeout\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"1800s\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@            \"-syslog\", @@@",
@@ -2540,7 +2483,7 @@
       "@@@STEP_LOG_LINE@task_requests.json@      }@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ], @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"name\": \"Vim2\", @@@",
-      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"\", @@@",
+      "@@@STEP_LOG_LINE@task_requests.json@    \"service_account\": \"service_account\", @@@",
       "@@@STEP_LOG_LINE@task_requests.json@    \"tags\": [@@@",
       "@@@STEP_LOG_LINE@task_requests.json@      \"test_environment_name:Khadas Vim2 Max-x64\"@@@",
       "@@@STEP_LOG_LINE@task_requests.json@    ]@@@",
diff --git a/recipes/fuchsia/build.py b/recipes/fuchsia/build.py
index 752a6e5..9431183 100644
--- a/recipes/fuchsia/build.py
+++ b/recipes/fuchsia/build.py
@@ -257,6 +257,8 @@
           spec.test.swarming_expiration_timeout_secs,
           spec.test.swarming_io_timeout_secs,
           spec.test.use_runtests,
+          default_service_account=spec.test.default_service_account,
+          pave_from_gcs=spec.test.pave_from_gcs,
           timeout_secs=spec.test.timeout_secs)
     else:
       shard_requests = api.testing_requests.deprecated_shard_requests(
@@ -270,6 +272,8 @@
           swarming_expiration_timeout_secs=spec.test
           .swarming_expiration_timeout_secs,
           swarming_io_timeout_secs=spec.test.swarming_io_timeout_secs,
+          default_service_account=spec.test.default_service_account,
+          pave_from_gcs=spec.test.pave_from_gcs,
       )
 
     orchestration_inputs = api.build.TestOrchestrationInputs.from_build_results(
@@ -310,6 +314,8 @@
           requires_secrets=requires_secrets,
           swarming_expiration_timeout_secs=10 * 60,
           swarming_io_timeout_secs=5 * 60,
+          default_service_account='service_account',
+          pave_from_gcs=True,
       )
 
     spec = Fuchsia(
diff --git a/recipes/fuchsia_perf.py b/recipes/fuchsia_perf.py
index 3d4fd6e..bbe92b4 100644
--- a/recipes/fuchsia_perf.py
+++ b/recipes/fuchsia_perf.py
@@ -87,6 +87,11 @@
             help='Whether to pave images the device for testing. (Ignored if'
             ' device_type == QEMU)',
             default=True),
+    'pave_from_gcs':
+        Property(
+            kind=bool,
+            help='Whether to pave with images from GCS.',
+            default=False),
 
     # Each layer should have a Fuchsia package containing a single benchmarks.sh which
     # runs all benchmarks.  For more information, see the following documentation:
@@ -129,14 +134,20 @@
         Property(
             kind=str,
             help='GCS bucket to upload to and read debug symbols from'),
+    'default_service_account':
+        Property(
+            kind=str,
+            help='The default service account to run test tasks with',
+            default=''),
 }
 
 
 def RunSteps(api, project, manifest, remote, target, build_type, packages,
              variants, gn_args, ninja_targets, test_pool, upload_to_dashboard,
-             device_type, pave, dashboard_masters_name, dashboard_bots_name,
-             benchmarks_package, board, product, test_timeout_secs, gcs_bucket,
-             debug_symbol_gcs_bucket):
+             device_type, pave, pave_from_gcs, dashboard_masters_name,
+             dashboard_bots_name, benchmarks_package, board, product,
+             test_timeout_secs, gcs_bucket, debug_symbol_gcs_bucket,
+             default_service_account):
   test_timeout_secs = int(test_timeout_secs)
   checkout_root = api.path['start_dir'].join('fuchsia')
   checkout = api.checkout.fuchsia_with_options(
@@ -189,7 +200,14 @@
   build.upload_debug_symbols(debug_symbol_gcs_bucket=debug_symbol_gcs_bucket)
 
   shard_requests = api.testing_requests.deprecated_shard_requests(
-      build, test_cmds, device_type, test_pool, test_timeout_secs, pave)
+      build,
+      test_cmds,
+      device_type,
+      test_pool,
+      test_timeout_secs,
+      pave,
+      default_service_account=default_service_account,
+      pave_from_gcs=pave_from_gcs)
 
   orchestration_inputs = api.build.TestOrchestrationInputs.from_build_results(
       build, shard_requests)
diff --git a/recipes/fuchsia_perfcompare.py b/recipes/fuchsia_perfcompare.py
index a26fa69..fe0f07c 100644
--- a/recipes/fuchsia_perfcompare.py
+++ b/recipes/fuchsia_perfcompare.py
@@ -182,7 +182,13 @@
       api.step('binary size data', ['cat', snapshot_file])
 
       shard_requests = api.testing_requests.deprecated_shard_requests(
-          build, test_cmds, device_type, test_pool, test_timeout_secs, pave)
+          build,
+          test_cmds,
+          device_type,
+          test_pool,
+          test_timeout_secs,
+          pave,
+          pave_from_gcs=False)
       orchestration_inputs = api.build.TestOrchestrationInputs.from_build_results(
           build, shard_requests)
       collect_funcs = []