minios: Add an option to repack MiniOS for development
The new option regenerates the MiniOS image using the base MiniOS
kernel image and a new verified boot structure with updated kernel
commandline flags.
A `--force-build` option is also provided to enable building a
MiniOS development image in a single step.
BUG=b:206814209
TEST=./run_tests scripts/build_minios_unittest.py lib/minios_unittest.py
Change-Id: If28eef1c97d06535e98dbfd20139e6ebf0d2e06c
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/chromite/+/3469722
Reviewed-by: Jae Hoon Kim <kimjae@chromium.org>
Reviewed-by: Yuanpeng Ni <yuanpengni@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Tested-by: Henry Barnor <hbarnor@chromium.org>
Commit-Queue: Henry Barnor <hbarnor@chromium.org>
diff --git a/scripts/build_minios_unittest.py b/scripts/build_minios_unittest.py
index ebeed2f..9f08101 100644
--- a/scripts/build_minios_unittest.py
+++ b/scripts/build_minios_unittest.py
@@ -54,6 +54,8 @@
constants.MINIOS_DATA_PRIVATE_KEY,
constants.MINIOS_KEYBLOCK,
None,
+ True,
+ False,
)])
self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(
@@ -82,6 +84,7 @@
'--private-key', test_private_key,
'--keyblock', test_keyblock,
'--serial', test_serial,
+ '--force-build',
])
self.assertEqual(self.create_minios_mock.mock_calls, [mock.call(
@@ -93,6 +96,73 @@
test_private_key,
test_keyblock,
test_serial,
+ True,
+ False,
+ )])
+
+ self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(
+ test_image, self.create_minios_mock_return,
+ )])
+
+ def testModForDev(self):
+ """Test that default arguments of build_minios are formatted correct."""
+ test_board = 'test-board'
+ test_version = '0.0.0.0'
+ test_image = '/some/image/path'
+ build_minios.main([
+ # --board is a required argument.
+ '--board', test_board,
+ # --version is a required argument.
+ '--version', test_version,
+ # --image is a required argument.
+ '--image', test_image,
+ '--mod-for-dev',
+ ])
+
+ self.assertEqual(self.create_minios_mock.mock_calls, [mock.call(
+ test_board,
+ test_version,
+ self._tempdir,
+ constants.VBOOT_DEVKEYS_DIR,
+ constants.RECOVERY_PUBLIC_KEY,
+ constants.MINIOS_DATA_PRIVATE_KEY,
+ constants.MINIOS_KEYBLOCK,
+ None,
+ False,
+ True,
+ )])
+
+ self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(
+ test_image, self.create_minios_mock_return,
+ )])
+
+ def testModForDevWithForceBuild(self):
+ """Test that default arguments of build_minios are formatted correct."""
+ test_board = 'test-board'
+ test_version = '0.0.0.0'
+ test_image = '/some/image/path'
+ build_minios.main([
+ # --board is a required argument.
+ '--board', test_board,
+ # --version is a required argument.
+ '--version', test_version,
+ # --image is a required argument.
+ '--image', test_image,
+ '--mod-for-dev',
+ '--force-build',
+ ])
+
+ self.assertEqual(self.create_minios_mock.mock_calls, [mock.call(
+ test_board,
+ test_version,
+ self._tempdir,
+ constants.VBOOT_DEVKEYS_DIR,
+ constants.RECOVERY_PUBLIC_KEY,
+ constants.MINIOS_DATA_PRIVATE_KEY,
+ constants.MINIOS_KEYBLOCK,
+ None,
+ True,
+ True,
)])
self.assertEqual(self.insert_minios_mock.mock_calls, [mock.call(