diff --git a/build/images/BUILD.gn b/build/images/BUILD.gn
index 476841b..1d7e08b 100644
--- a/build/images/BUILD.gn
+++ b/build/images/BUILD.gn
@@ -11,6 +11,7 @@
 import("//build/config/fuchsia/zircon_legacy_vars.gni")
 import("//build/images/args.gni")
 import("//build/images/boot.gni")
+import("//build/images/bootfs_manifest_additions.gni")
 import("//build/images/collect_blob_manifest.gni")
 import("//build/images/custom_signing.gni")
 import("//build/images/filesystem_limits.gni")
@@ -550,24 +551,12 @@
   contents = zxcrypt_key_source
 }
 
-coordinator_label = "//src/devices:devices.bootfs"
-coordinator_target_dir = get_label_info(coordinator_label, "target_out_dir")
-coordinator_target_name = get_label_info(coordinator_label, "name")
-coordinator_manifest = coordinator_target_dir + "/" + coordinator_target_name
-
-component_manager_label = "//src/sys/component_manager:component_manager.bootfs"
-component_manager_target_dir =
-    get_label_info(component_manager_label, "target_out_dir")
-component_manager_target_name = get_label_info(component_manager_label, "name")
-component_manager_manifest =
-    component_manager_target_dir + "/" + component_manager_target_name
-
-root_manifests_label = "//src/sys/bootstrap:root_manifests.bootfs"
-root_manifests_target_dir =
-    get_label_info(root_manifests_label, "target_out_dir")
-root_manifests_target_name = get_label_info(root_manifests_label, "name")
-root_manifests_manifest =
-    root_manifests_target_dir + "/" + root_manifests_target_name
+additional_manifests = []
+foreach(label, bootfs_manifest_additions) {
+  target_dir = get_label_info(label, "target_out_dir")
+  target_name = get_label_info(label, "name")
+  additional_manifests += [ target_dir + "/" + target_name ]
+}
 
 # The main bootable image, which requires `blob.blk` to appear on some
 # attached storage device at runtime.
@@ -575,19 +564,13 @@
   testonly = true
 
   deps = [
-    ":devmgr_config.txt",
-    ":system_image.manifest",
-    component_manager_label,
-    coordinator_label,
-    root_manifests_label,
-  ]
+           ":devmgr_config.txt",
+           ":system_image.manifest",
+         ] + bootfs_manifest_additions
   inputs = [
-    boot_manifest,
-    component_manager_manifest,
-    root_manifests_manifest,
-    coordinator_manifest,
-    zircon_kernel_zbi,
-  ]
+             boot_manifest,
+             zircon_kernel_zbi,
+           ] + additional_manifests
   manifest = []
   if (!include_devmgr_config_in_vbmeta) {
     manifest += [
diff --git a/build/images/assemble_system.gni b/build/images/assemble_system.gni
index 15cea44..3fdd08e 100644
--- a/build/images/assemble_system.gni
+++ b/build/images/assemble_system.gni
@@ -7,6 +7,7 @@
 import("//build/config/fuchsia/zbi.gni")
 import("//build/config/fuchsia/zircon.gni")
 import("//build/config/fuchsia/zircon_images.gni")
+import("//build/images/bootfs_manifest_additions.gni")
 import("//build/images/collect_blob_manifest.gni")
 import("//build/images/fvm.gni")
 import("//build/images/pkgfs.gni")
@@ -333,26 +334,12 @@
     contents = zxcrypt_key_source
   }
 
-  component_manager_label =
-      "//src/sys/component_manager:component_manager.bootfs"
-  component_manager_target_dir =
-      get_label_info(component_manager_label, "target_out_dir")
-  component_manager_target_name =
-      get_label_info(component_manager_label, "name")
-  component_manager_manifest =
-      component_manager_target_dir + "/" + component_manager_target_name
-
-  coordinator_label = "//src/devices:devices.bootfs"
-  coordinator_target_dir = get_label_info(coordinator_label, "target_out_dir")
-  coordinator_target_name = get_label_info(coordinator_label, "name")
-  coordinator_manifest = coordinator_target_dir + "/" + coordinator_target_name
-
-  root_manifests_label = "//src/sys/bootstrap:root_manifests.bootfs"
-  root_manifests_target_dir =
-      get_label_info(root_manifests_label, "target_out_dir")
-  root_manifests_target_name = get_label_info(root_manifests_label, "name")
-  root_manifests_manifest =
-      root_manifests_target_dir + "/" + root_manifests_target_name
+  additional_manifests = []
+  foreach(label, bootfs_manifest_additions) {
+    target_dir = get_label_info(label, "target_out_dir")
+    target_name = get_label_info(label, "name")
+    additional_manifests += [ target_dir + "/" + target_name ]
+  }
 
   zbi(image_name) {
     metadata = {
@@ -382,21 +369,15 @@
 
     testonly = true
     deps = [
-      ":${image_name}_devmgr_config.txt",
-      ":${image_name}_fvm.blk",
-      ":${image_name}_system_image.manifest",
-      ":${image_name}_zxcrypt_config.txt",
-      component_manager_label,
-      coordinator_label,
-      root_manifests_label,
-    ]
+             ":${image_name}_devmgr_config.txt",
+             ":${image_name}_fvm.blk",
+             ":${image_name}_system_image.manifest",
+             ":${image_name}_zxcrypt_config.txt",
+           ] + bootfs_manifest_additions
     inputs = [
-      boot_manifest,
-      component_manager_manifest,
-      coordinator_manifest,
-      root_manifests_manifest,
-      zircon_kernel_zbi,
-    ]
+               boot_manifest,
+               zircon_kernel_zbi,
+             ] + additional_manifests
     manifest = [
       {
         outputs = [ "config/devmgr" ]
diff --git a/build/images/bootfs_manifest.gni b/build/images/bootfs_manifest.gni
new file mode 100644
index 0000000..8e0a6bb
--- /dev/null
+++ b/build/images/bootfs_manifest.gni
@@ -0,0 +1,159 @@
+# Copyright 2020 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import("//build/images/manifest.gni")
+import("//src/sys/cmc/build/cml.gni")
+
+# Helper template to create manifests for including items in bootfs.
+#
+# Parameters
+#
+#   binaries (optional)
+#     [list of scopes] Defines binaries in the ZBI. A binary is typically
+#     produced by the build system and is always placed in the `bin/` directory
+#     of the ZBI.
+#
+#     Entries in a scope in the binaries list:
+#
+#       name (required)
+#         [string] Name of the binary.
+#
+#       source (optional)
+#         [path] Location of the binary in the build directory if it is not
+#         at `$root_out_dir/$name`.
+#
+#       dest (optional)
+#         [path] Location the binary will be placed within `bin/`.
+#
+#   drivers (optional)
+#     [list of scopes] Defines drivers in the ZBI. A driver is typically
+#     produced by the build system and is always placed in the `driver/`
+#     directory of the ZBI.
+#
+#     Entries in a scope in the binaries list:
+#
+#       name (required)
+#         [string] Name of the driver.
+#
+#       source (optional)
+#         [path] Location of the driver in the build directory if it is not
+#         at `$root_out_dir/$name`.
+#
+#       dest (optional)
+#         [path] Location the driver will be placed within `driver/`.
+#
+#   meta (optional)
+#     [list of scopes] Defines metadata entries in the ZBI. A metadata entry is
+#     typically a source file and is always placed in the `meta/` directory of
+#     the assembled package. Only CML files may be listed here.
+#
+#     Entries in a scope in the meta list:
+#
+#       path (required)
+#         [path] Location of entry in source or build directory. If the
+#         resource is checked in, this will typically be specified as a
+#         path relative to the BUILD.gn file containing the `bootfs_manifest()`
+#         target. If the resource is generated, this will typically be
+#         specified relative to `$target_gen_dir`.
+#
+#       dest (optional)
+#         [path] Location the resource will be placed within `meta/`.
+#
+#   deps (optional)
+#     Usual GN meanings.
+#
+template("bootfs_manifest") {
+  forward_variables_from(invoker,
+                         [
+                           "binaries",
+                           "drivers",
+                           "meta",
+                         ])
+  if (!defined(binaries)) {
+    binaries = []
+  }
+  if (!defined(drivers)) {
+    drivers = []
+  }
+  if (!defined(meta)) {
+    meta = []
+  }
+
+  manifest_deps = []
+  if (defined(invoker.deps)) {
+    manifest_deps = invoker.deps
+  }
+
+  manifest_args = []
+  foreach(binary, binaries) {
+    if (defined(binary.dest)) {
+      dest = binary.dest
+    } else {
+      dest = binary.name
+    }
+    dest = "bin/" + dest
+
+    if (defined(binary.source)) {
+      source = binary.source
+    } else {
+      source = binary.name
+    }
+    source = rebase_path(source, "", root_out_dir)
+
+    manifest_args += [ "--entry=" + dest + "=" + source ]
+  }
+
+  foreach(driver, drivers) {
+    if (defined(driver.dest)) {
+      dest = driver.dest
+    } else {
+      dest = driver.name
+    }
+    dest = "driver/" + dest
+
+    if (defined(driver.source)) {
+      source = driver.source
+    } else {
+      source = driver.name
+    }
+    source = rebase_path(source, "", root_out_dir)
+
+    manifest_args += [ "--entry=" + dest + "=" + source ]
+  }
+
+  foreach(m, meta) {
+    assert(defined(m.path), "path is required")
+
+    assert(get_path_info(m.path, "extension") == "cml",
+           "only component manifests are supported in /boot/meta")
+    if (defined(m.dest)) {
+      assert(get_path_info(m.dest, "extension") == "cm",
+             "only component manifests are supported in /boot/meta")
+      dest = m.dest
+    } else {
+      filename = get_path_info(m.path, "file")
+      dest = string_replace(filename, ".cml", ".cm")
+    }
+
+    compile_label = "compile_boot_" + get_path_info(dest, "file")
+    cm(compile_label) {
+      data = m.path
+    }
+    manifest_deps += [ ":$compile_label" ]
+
+    dest = "meta/" + dest
+
+    cm_out = []
+    cm_out = get_target_outputs(":$compile_label")
+
+    source = rebase_path(cm_out[0])
+
+    manifest_args += [ "--entry=" + dest + "=" + source ]
+  }
+
+  generate_manifest(target_name) {
+    deps = manifest_deps
+    args = manifest_args
+  }
+}
diff --git a/build/images/bootfs_manifest_additions.gni b/build/images/bootfs_manifest_additions.gni
new file mode 100644
index 0000000..897b5e2
--- /dev/null
+++ b/build/images/bootfs_manifest_additions.gni
@@ -0,0 +1,13 @@
+# Copyright 2020 The Fuchsia Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# The labels in this list are bootfs manifests (created with the template in
+# //build/images/bootfs_manifest.gni) that describe files from the GN build that
+# are to be included in the ZBI on every build.
+bootfs_manifest_additions = [
+  "//src/devices/bin/driver_manager:driver_manager.manifest",
+  "//src/devices:devices.manifest",
+  "//src/sys/bootstrap:root_manifests.manifest",
+  "//src/sys/component_manager:component_manager_bootfs.manifest",
+]
diff --git a/build/images/bringup/BUILD.gn b/build/images/bringup/BUILD.gn
index af88a84..8e4c01f8 100644
--- a/build/images/bringup/BUILD.gn
+++ b/build/images/bringup/BUILD.gn
@@ -6,6 +6,7 @@
 import("//build/config/fuchsia/zbi.gni")
 import("//build/images/args.gni")
 import("//build/images/boot.gni")
+import("//build/images/bootfs_manifest_additions.gni")
 import("//build/images/custom_signing.gni")
 import("//build/images/manifest.gni")
 import("//build/images/ta.gni")
@@ -49,43 +50,24 @@
   }
 }
 
-coordinator_label = "//src/devices:devices.bootfs"
-coordinator_target_dir = get_label_info(coordinator_label, "target_out_dir")
-coordinator_target_name = get_label_info(coordinator_label, "name")
-coordinator_manifest = coordinator_target_dir + "/" + coordinator_target_name
-
-component_manager_label = "//src/sys/component_manager:component_manager.bootfs"
-component_manager_target_dir =
-    get_label_info(component_manager_label, "target_out_dir")
-component_manager_target_name = get_label_info(component_manager_label, "name")
-component_manager_manifest =
-    component_manager_target_dir + "/" + component_manager_target_name
-
-root_manifests_label = "//src/sys/bootstrap:root_manifests.bootfs"
-root_manifests_target_dir =
-    get_label_info(root_manifests_label, "target_out_dir")
-root_manifests_target_name = get_label_info(root_manifests_label, "name")
-root_manifests_manifest =
-    root_manifests_target_dir + "/" + root_manifests_target_name
+additional_manifests = []
+foreach(label, bootfs_manifest_additions) {
+  target_dir = get_label_info(label, "target_out_dir")
+  target_name = get_label_info(label, "name")
+  additional_manifests += [ target_dir + "/" + target_name ]
+}
 
 zbi("bringup") {
   testonly = true
 
   deps = [
-    ":boot.manifest",
-    ":devmgr_config.txt",
-    component_manager_label,
-    coordinator_label,
-    root_manifests_label,
-  ]
+           ":boot.manifest",
+           ":devmgr_config.txt",
+         ] + bootfs_manifest_additions
 
   boot_manifest_outputs = get_target_outputs(":boot.manifest")
-  inputs = [ boot_manifest_outputs[0] ] + [
-             component_manager_manifest,
-             coordinator_manifest,
-             root_manifests_manifest,
-             zircon_kernel_zbi,
-           ]
+  inputs = [ boot_manifest_outputs[0] ] + [ zircon_kernel_zbi ] +
+           additional_manifests
 
   manifest = [
     {
diff --git a/build/images/zedboot/BUILD.gn b/build/images/zedboot/BUILD.gn
index cdf4498..c3a6e17 100644
--- a/build/images/zedboot/BUILD.gn
+++ b/build/images/zedboot/BUILD.gn
@@ -6,6 +6,7 @@
 import("//build/config/fuchsia/zbi.gni")
 import("//build/images/args.gni")
 import("//build/images/boot.gni")
+import("//build/images/bootfs_manifest_additions.gni")
 import("//build/images/custom_signing.gni")
 import("//build/images/custom_signing.gni")
 import("//build/images/manifest.gni")
@@ -116,50 +117,27 @@
   contents = zxcrypt_key_source
 }
 
-component_manager_label = "//src/sys/component_manager:component_manager.bootfs"
-component_manager_target_dir =
-    get_label_info(component_manager_label, "target_out_dir")
-component_manager_target_name = get_label_info(component_manager_label, "name")
-component_manager_manifest =
-    component_manager_target_dir + "/" + component_manager_target_name
+bootfs_manifest_additions += [ "//src/sys/installer:installer.manifest" ]
 
-coordinator_label = "//src/devices:devices.bootfs"
-coordinator_target_dir = get_label_info(coordinator_label, "target_out_dir")
-coordinator_target_name = get_label_info(coordinator_label, "name")
-coordinator_manifest = coordinator_target_dir + "/" + coordinator_target_name
-
-installer_label = "//src/sys/installer:installer.bootfs"
-installer_target_dir = get_label_info(installer_label, "target_out_dir")
-installer_target_name = get_label_info(installer_label, "name")
-installer_manifest = installer_target_dir + "/" + installer_target_name
-
-root_manifests_label = "//src/sys/bootstrap:root_manifests.bootfs"
-root_manifests_target_dir =
-    get_label_info(root_manifests_label, "target_out_dir")
-root_manifests_target_name = get_label_info(root_manifests_label, "name")
-root_manifests_manifest =
-    root_manifests_target_dir + "/" + root_manifests_target_name
+additional_manifests = []
+foreach(label, bootfs_manifest_additions) {
+  target_dir = get_label_info(label, "target_out_dir")
+  target_name = get_label_info(label, "name")
+  additional_manifests += [ target_dir + "/" + target_name ]
+}
 
 # Note: This output is also used by a script in //scripts/verify_cmdline_params.
 zbi("zbi") {
   output_name = "zedboot"
   deps = [
-    ":devmgr_config.txt",
-    ":zedboot.manifest",
-    ":zxcrypt_config.txt",
-    component_manager_label,
-    coordinator_label,
-    installer_label,
-    root_manifests_label,
-  ]
+           ":devmgr_config.txt",
+           ":zedboot.manifest",
+           ":zxcrypt_config.txt",
+         ] + bootfs_manifest_additions
   inputs = [
-    component_manager_manifest,
-    coordinator_manifest,
-    installer_manifest,
-    root_manifests_manifest,
-    zircon_kernel_zbi,
-    manifest_file,
-  ]
+             zircon_kernel_zbi,
+             manifest_file,
+           ] + additional_manifests
   manifest =
       [ "config/zxcrypt=" +
         rebase_path("$target_out_dir/zxcrypt_config.txt", root_build_dir) ]
diff --git a/src/devices/BUILD.gn b/src/devices/BUILD.gn
index 6e51ae4..20ed830 100644
--- a/src/devices/BUILD.gn
+++ b/src/devices/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/images/bootfs_manifest.gni")
 import("//build/package.gni")
 
 group("devices") {
@@ -39,7 +40,7 @@
   ]
 }
 
-generate_manifest("devices.bootfs") {
+bootfs_manifest("devices.manifest") {
   deps = [
     "bin",
     "lib/driver",
@@ -48,19 +49,22 @@
   ]
 
   # TODO(bwb): match the file in the image to the respective build name
-  args = [
-    "--entry=bin/driver_manager=" +
-        rebase_path("$root_build_dir/driver_manager", root_build_dir),
-    "--entry=bin/driver_host=" +
-        rebase_path("$root_build_dir/driver_host", root_build_dir),
+  binaries = [
+    {
+      name = "driver_host"
+    },
 
     # Inject Virtcon into the ZBI
     # TODO(41410): Remove when unified build exists.
-    "--entry=bin/virtual-console=" +
-        rebase_path("$root_build_dir/virtual-console", root_build_dir),
+    {
+      name = "virtual-console"
+    },
+  ]
 
+  drivers = [
     # Drivers for ZBI injection
-    "--entry=driver/hid-input-report.so=" +
-        rebase_path("$root_build_dir/hid-input-report.so", root_build_dir),
+    {
+      name = "hid-input-report.so"
+    },
   ]
 }
diff --git a/src/devices/bin/driver_manager/BUILD.gn b/src/devices/bin/driver_manager/BUILD.gn
index 0c5157d..83e61cd 100644
--- a/src/devices/bin/driver_manager/BUILD.gn
+++ b/src/devices/bin/driver_manager/BUILD.gn
@@ -2,11 +2,11 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/images/bootfs_manifest.gni")
 import("//build/test.gni")
 import("//build/test/test_package.gni")
 import("//build/test/test_package.gni")
 import("//build/testing/environments.gni")
-import("//src/sys/cmc/build/cml.gni")
 
 group("tests") {
   testonly = true
@@ -109,10 +109,6 @@
   defines = [ "_ALL_SOURCE=1" ]
 }
 
-cm("driver_manager.cm") {
-  data = rebase_path("meta/driver_manager.cml")
-}
-
 test("driver_manager_test") {
   sources = [
     "binding_test.cc",
@@ -158,3 +154,17 @@
     },
   ]
 }
+
+bootfs_manifest("driver_manager.manifest") {
+  deps = [ ":driver_manager" ]
+  binaries = [
+    {
+      name = "driver_manager"
+    },
+  ]
+  meta = [
+    {
+      path = rebase_path("meta/driver_manager.cml")
+    },
+  ]
+}
diff --git a/src/sys/bootstrap/BUILD.gn b/src/sys/bootstrap/BUILD.gn
index a750e12..3c846eb 100644
--- a/src/sys/bootstrap/BUILD.gn
+++ b/src/sys/bootstrap/BUILD.gn
@@ -2,60 +2,30 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
-import("//build/images/manifest.gni")
-import("//src/sys/cmc/build/cml.gni")
+import("//build/images/bootfs_manifest.gni")
 
-cm("root.cm") {
-  data = rebase_path("meta/root.cml")
-}
-cm("bootstrap.cm") {
-  data = rebase_path("meta/bootstrap.cml")
-}
+bootfs_manifest("root_manifests.manifest") {
+  meta = [
+    {
+      path = rebase_path("meta/root.cml")
+    },
+    {
+      path = rebase_path("meta/bootstrap.cml")
+    },
 
-# TODO(BLD-448): These should move into their appropriate packages that are
-# included in bootfs along with the binaries and other resources/libraries.
-cm("console.cm") {
-  data = rebase_path("meta/console.cml")
-}
-cm("ptysvc.cm") {
-  data = rebase_path("meta/ptysvc.cml")
-}
-cm("sysinfo.cm") {
-  data = rebase_path("meta/sysinfo.cml")
-}
-cm("fshost.cm") {
-  data = rebase_path("meta/fshost.cml")
-}
-
-driver_manager_cm = "//src/devices/bin/driver_manager:driver_manager.cm"
-
-# TODO(BLD-448): Should become a package just containing the root manifests.
-generate_manifest("root_manifests.bootfs") {
-  deps = [
-    ":bootstrap.cm",
-    ":console.cm",
-    ":fshost.cm",
-    ":ptysvc.cm",
-    ":root.cm",
-    ":sysinfo.cm",
-    driver_manager_cm,
-  ]
-
-  root_cm_out = get_target_outputs(":root.cm")
-  bootstrap_cm_out = get_target_outputs(":bootstrap.cm")
-  devc_cm_out =
-      get_label_info(driver_manager_cm, "target_out_dir") + "/driver_manager.cm"
-  fshost_cm_out = get_target_outputs(":fshost.cm")
-  console_cm_out = get_target_outputs(":console.cm")
-  ptysvc_cm_out = get_target_outputs(":ptysvc.cm")
-  sysinfo_cm_out = get_target_outputs(":sysinfo.cm")
-  args = [
-    "--entry=meta/root.cm=" + rebase_path(root_cm_out[0]),
-    "--entry=meta/bootstrap.cm=" + rebase_path(bootstrap_cm_out[0]),
-    "--entry=meta/driver_manager.cm=" + rebase_path(devc_cm_out),
-    "--entry=meta/console.cm=" + rebase_path(console_cm_out[0]),
-    "--entry=meta/ptysvc.cm=" + rebase_path(ptysvc_cm_out[0]),
-    "--entry=meta/sysinfo.cm=" + rebase_path(sysinfo_cm_out[0]),
-    "--entry=meta/fshost.cm=" + rebase_path(fshost_cm_out[0]),
+    # TODO(BLD-448): These should move into their appropriate packages that are
+    # included in bootfs along with the binaries and other resources/libraries.
+    {
+      path = rebase_path("meta/console.cml")
+    },
+    {
+      path = rebase_path("meta/ptysvc.cml")
+    },
+    {
+      path = rebase_path("meta/sysinfo.cml")
+    },
+    {
+      path = rebase_path("meta/fshost.cml")
+    },
   ]
 }
diff --git a/src/sys/component_manager/BUILD.gn b/src/sys/component_manager/BUILD.gn
index 517c8c4..f5d2279 100644
--- a/src/sys/component_manager/BUILD.gn
+++ b/src/sys/component_manager/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/images/bootfs_manifest.gni")
 import("//build/package.gni")
 import("//build/rust/rustc_binary.gni")
 import("//build/rust/rustc_library.gni")
@@ -131,11 +132,14 @@
 }
 
 # This manifest is consumed by the ZBI rule in //build/images to add component_manager to bootfs.
-generate_manifest("component_manager.bootfs") {
+bootfs_manifest("component_manager_bootfs.manifest") {
   deps = [ ":bin" ]
 
-  args = [ "--entry=bin/component_manager=" +
-           rebase_path("$root_build_dir/component_manager", root_build_dir) ]
+  binaries = [
+    {
+      name = "component_manager"
+    },
+  ]
 }
 
 # Note that this package and the component it contains wrap component_manager
diff --git a/src/sys/installer/BUILD.gn b/src/sys/installer/BUILD.gn
index 552b461f..f6e28b5 100644
--- a/src/sys/installer/BUILD.gn
+++ b/src/sys/installer/BUILD.gn
@@ -2,6 +2,7 @@
 # Use of this source code is governed by a BSD-style license that can be
 # found in the LICENSE file.
 
+import("//build/images/bootfs_manifest.gni")
 import("//build/package.gni")
 import("//build/rust/rustc_binary.gni")
 import("//build/test/test_package.gni")
@@ -34,11 +35,14 @@
   ]
 }
 
-generate_manifest("installer.bootfs") {
+bootfs_manifest("installer.manifest") {
   deps = [ ":bin" ]
 
-  args = [ "--entry=bin/installer=" +
-           rebase_path("$root_build_dir/installer", root_build_dir) ]
+  binaries = [
+    {
+      name = "installer"
+    },
+  ]
 }
 
 test_package("installer-tests") {
