summaryrefslogtreecommitdiff
path: root/futility/updater.h
diff options
context:
space:
mode:
authorPaul Ma <magf@bitland.corp-partner.google.com>2020-01-07 16:30:47 +0800
committerCommit Bot <commit-bot@chromium.org>2020-01-08 23:49:02 +0000
commit236bd46bfb59f0262dcb1771a108ebb5e90df578 (patch)
tree8175131a1d04370314fc2c42569833049ef03a9e /futility/updater.h
parent695c56dc50a59e5c9098c94f41b3d86b8f99baf1 (diff)
downloadvboot-stabilize-excelsior-12739.67.B.tar.gz
Because of lacking CL:1501614 in octopus factory branch, dopefish root key is written to some phaser360 devices. That will lead to firmware updater not be able to verify RW vblock and AU will fail. This CL will fix that by using root key info and model name to make firmware updater get a proper sig_id so that in-field machines can be updated by AU. BUG=b:146876241, b:133901651, b:146482979 BRANCH=none TEST=using a DUT of phaser360 (without whitelabel_tag = dopefish) which is flashed dopefish rootkey and hwid, using command 'chromeos-firmwareupdate -m autoupdate --wp=1' to flash firmware, RW firmware can be updated and DUT can boot normally. Change-Id: I163c16189c28a996ed08bf2a7b162e6ee3b13be6 Signed-off-by: Paul Ma <magf@bitland.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1981650 Reviewed-by: Hung-Te Lin <hungte@chromium.org> Commit-Queue: Hung-Te Lin <hungte@chromium.org> (cherry picked from commit 5ea8fe68b1d9c498b6f58303afa3e36cf025d280) Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/1992725 Reviewed-by: Justin TerAvest <teravest@chromium.org> Commit-Queue: Justin TerAvest <teravest@chromium.org> Tested-by: Justin TerAvest <teravest@chromium.org>
Diffstat (limited to 'futility/updater.h')
-rw-r--r--futility/updater.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/futility/updater.h b/futility/updater.h
index c83ebfc2..e11cc745 100644
--- a/futility/updater.h
+++ b/futility/updater.h
@@ -43,6 +43,7 @@ enum quirk_types {
QUIRK_EVE_SMM_STORE,
QUIRK_ALLOW_EMPTY_WLTAG,
QUIRK_EC_PARTIAL_RECOVERY,
+ QUIRK_OVERRIDE_SIGNATURE_ID,
QUIRK_MAX,
};
@@ -124,6 +125,12 @@ enum updater_error_codes {
extern const char * const updater_error_messages[];
/*
+ * Returns a valid root key from GBB header, or NULL on failure.
+ */
+const struct vb2_packed_key *get_rootkey(
+ const struct vb2_gbb_header *gbb);
+
+/*
* The main updater to update system firmware using the configuration parameter.
* Returns UPDATE_ERR_DONE if success, otherwise failure.
*/
@@ -168,6 +175,14 @@ int get_system_property(enum system_property_type property_type,
*/
const char * const updater_get_default_quirks(struct updater_config *cfg);
+/*
+ * Overrides signature id if the device was shipped with known
+ * special rootkey.
+ */
+int quirk_override_signature_id(struct updater_config *cfg,
+ struct model_config *model,
+ const char **signature_id);
+
/* Functions from updater_archive.c */
/*