Hash the manifest, parameters, and disk image and mount it.

This code hashes the manifest, parameters and disk image and mounts
them. The next CL will add the final piece to ImageLoader: setting up
the dm-verity table on mount.

TEST=FEATURES="test" emerge-${BOARD} imageloader, and run the client

Change-Id: I800f6d9ad361b86a295ab9a4a1b48de942dbbe8f
Reviewed-on: https://chromium-review.googlesource.com/363595
Commit-Ready: Greg Kerr <kerrnel@chromium.org>
Tested-by: Greg Kerr <kerrnel@chromium.org>
Reviewed-by: Ricky Zhou <rickyz@chromium.org>
11 files changed
tree: d8308eff167c7c8f109abda14ea62ecde44797e2
  1. .presubmitignore
  2. README.md
  3. imageloadclient-glue.xml
  4. imageloadclient.cc
  5. imageloadclient.h
  6. imageloader-glue.xml
  7. imageloader.gyp
  8. imageloader.h
  9. imageloader_common.cc
  10. imageloader_common.h
  11. imageloader_impl.cc
  12. imageloader_impl.h
  13. imageloader_main.cc
  14. imageloader_unittest.cc
  15. loop_mounter.cc
  16. loop_mounter.h
  17. mock_loop_mounter.h
  18. org.chromium.ImageLoader.conf
  19. org.chromium.ImageLoader.service
  20. public_keys/
  21. run_tests.cc
  22. test/


This aims to provide a generic utility to load (mount) and unload (unmount) verified disk images through DBus IPC.


  • imageloader
  • imageloadclient

imageloader can be run as root and can handle mounting and unmounting of disk images. imageloadclient is a simple client (intended to be run as chronos) that can talk to imageloader and ask it to mount and unmount stuff. When imageloader is not running, DBus can invoke it via the one time run option (imageloader -o) and get the task done.