Use privileged helper process to mount images.

Uses a privileged helper process to mount images, so that the untrusted
data is only read by the non-root, sandboxed main process.

BUG=chromium:682968
CQ-DEPEND=CL:434201
TEST=test_that -b ${BOARD} ${DUT_ip} platform_ImageLoaderServer

Change-Id: I7aa12d998065c0c2c81628f23ed52505333b4e8c
Reviewed-on: https://chromium-review.googlesource.com/434126
Commit-Ready: Greg Kerr <kerrnel@chromium.org>
Tested-by: Greg Kerr <kerrnel@chromium.org>
Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org>
24 files changed
tree: 1a9286c1be9cb183d9d23ecbb06996187ebc55f0
  1. dbus_adaptors/
  2. dbus_permissions/
  3. dbus_service/
  4. public_keys/
  5. seccomp/
  6. testdata/
  7. .presubmitignore
  8. component.cc
  9. component.h
  10. component_unittest.cc
  11. helper_process.cc
  12. helper_process.h
  13. imageloader.cc
  14. imageloader.conf
  15. imageloader.gyp
  16. imageloader.h
  17. imageloader_impl.cc
  18. imageloader_impl.h
  19. imageloader_main.cc
  20. imageloader_unittest.cc
  21. imageloader_wrapper
  22. ipc.proto
  23. mock_helper_process.h
  24. mock_verity_mounter.h
  25. mount_helper.cc
  26. mount_helper.h
  27. README.md
  28. run_tests.cc
  29. test_utilities.cc
  30. test_utilities.h
  31. verity_mounter.cc
  32. verity_mounter.h
README.md

src/platform/imageloader

This aims to provide a generic utility to verify and load (mount) signed disk images through DBUS IPC.

Binaries

  • imageloader

imageloader handles the mounting of disk images. imageloader should be executed via the imageloader_wrapper script, which ensures that imageloader's storage exists and is owned by imageloaderd user. When imageloader is not running, DBus will automatically invoke it. After 20 seconds of inactivity, the service exits.