futility: updater: quirks: Support special released SNOW RO

A special Snow RO firmware had been released and would break existing
platform check: 'Google_Snow_Rev4.2695.128.0'. As a result, we want to
bypass platform check in quirk 'daisy_snow_dual_model'.

BUG=chromium:917581
TEST=make futil; tests/futility/run_test_scripts.sh $(pwd)/build/futility
BRANCH=None

Change-Id: I10b0e4c2b8a11faff979b4add368f342a72a6cec
Signed-off-by: Hung-Te Lin <hungte@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/1390083
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Reviewed-by: Joel Kitching <kitching@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/1405390
Reviewed-by: Bernie Thompson <bhthompson@chromium.org>
Commit-Queue: Bernie Thompson <bhthompson@chromium.org>
Tested-by: Bernie Thompson <bhthompson@chromium.org>
diff --git a/futility/updater.c b/futility/updater.c
index e1ae076..b2c211b 100644
--- a/futility/updater.c
+++ b/futility/updater.c
@@ -1541,7 +1541,7 @@
 	       image_from->file_name, image_from->ro_version,
 	       image_from->rw_version_a, image_from->rw_version_b);
 
-	if (check_compatible_platform(cfg))
+	if (cfg->check_platform && check_compatible_platform(cfg))
 		return UPDATE_ERR_PLATFORM;
 
 	wp_enabled = is_write_protection_enabled(cfg);
@@ -1593,6 +1593,8 @@
 	cfg->ec_image.programmer = PROG_EC;
 	cfg->pd_image.programmer = PROG_PD;
 
+	cfg->check_platform = 1;
+
 	props = cfg->system_properties;
 	props[SYS_PROP_MAINFW_ACT].getter = host_get_mainfw_act;
 	props[SYS_PROP_TPM_FWVER].getter = host_get_tpm_fwver;
diff --git a/futility/updater.h b/futility/updater.h
index 3993f07..6c949c4 100644
--- a/futility/updater.h
+++ b/futility/updater.h
@@ -101,6 +101,7 @@
 	int try_update;
 	int force_update;
 	int legacy_update;
+	int check_platform;
 	int verbosity;
 	const char *emulation;
 };
diff --git a/futility/updater_quirks.c b/futility/updater_quirks.c
index f3989e7..3f2e3df 100644
--- a/futility/updater_quirks.c
+++ b/futility/updater_quirks.c
@@ -206,6 +206,8 @@
 		memmove(b.data, a.data, a.size);
 		free(cfg->image.rw_version_b);
 		cfg->image.rw_version_b = strdup(cfg->image.rw_version_a);
+		/* chromium:917581 Some x16 come with weird RO. */
+		cfg->check_platform = 0;
 	} else if (is_x8) {
 		memmove(a.data, b.data, b.size);
 		free(cfg->image.rw_version_a);