futility: updater: Correct HWID digest when preserving HWID

Starting from GBB 1.2, a digest is stored in GBB and must be updated
whenever the HWID string is changed.

In shell script version of updater, the digest is automatically updated
when we do "futility gbb -s --hwid=XXX", but in native updater
implementation we only updated the HWID string and left digest
unchanged, this leaves devices generating wrong PCR1 values.

`cmd_gbb_utility` updates the digest by calling `update_hwid_digest`
using vboot1 structure, so we should introduce a new vboot2 friendly
function, `vb2_change_hwid`, which changes both HWID string and digest
at same time.

Note this has no impact for end user's devices with write protection
enabled. Only changes dogfood units AU results.

TEST=make futil; tests/futility/run_test_scripts.sh $(pwd)/build/futility

Change-Id: I6ad2754e6df3c9dd66d71c560a2afc26d14eae33
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1411932
Reviewed-by: Joel Kitching <kitching@chromium.org>
(cherry picked from commit 859682accb19893803026a28b4c8ca2cd57945a4)
Reviewed-on: https://chromium-review.googlesource.com/c/1423940
Tested-by: James Chen <chienhua@google.com>
Trybot-Ready: James Chen <chienhua@google.com>
Reviewed-by: John  Chen <zuan@chromium.org>
Reviewed-by: Srinivasa duvvuri <sduvvuri@google.com>
Commit-Queue: John  Chen <zuan@chromium.org>
4 files changed