diff options
-rw-r--r-- | futility/updater.c | 8 | ||||
-rw-r--r-- | futility/updater.h | 3 | ||||
-rw-r--r-- | futility/updater_dut.c | 22 | ||||
-rw-r--r-- | futility/updater_manifest.c | 5 | ||||
-rw-r--r-- | futility/updater_quirks.c | 11 | ||||
-rw-r--r-- | futility/updater_utils.h | 13 |
6 files changed, 36 insertions, 26 deletions
diff --git a/futility/updater.c b/futility/updater.c index 6515402b..d4d44f9d 100644 --- a/futility/updater.c +++ b/futility/updater.c @@ -274,17 +274,17 @@ static int set_try_cookies(struct updater_config *cfg, const char *target, return 0; } - if (dut_set_property_string("fw_try_next", slot)) { + if (dut_set_property_string("fw_try_next", slot, cfg)) { ERROR("Failed to set fw_try_next to %s.\n", slot); return -1; } if (!has_update && - dut_set_property_string("fw_result", "success")) { + dut_set_property_string("fw_result", "success", cfg)) { ERROR("Failed to set fw_result to success.\n"); return -1; } - if (dut_set_property_int("fw_try_count", tries)) { + if (dut_set_property_int("fw_try_count", tries, cfg)) { ERROR("Failed to set fw_try_count to %d.\n", tries); return -1; } @@ -1369,7 +1369,7 @@ static int updater_setup_archive( if (cfg->detect_model) model = manifest_detect_model_from_frid(cfg, manifest); else - model = manifest_find_model(manifest, arg->model); + model = manifest_find_model(cfg, manifest, arg->model); if (!model) return ++errorcnt; diff --git a/futility/updater.h b/futility/updater.h index a8bbfe31..4382217d 100644 --- a/futility/updater.h +++ b/futility/updater.h @@ -342,7 +342,8 @@ int patch_image_by_model( * system (as defined by model_name). * Returns a model_config from manifest, or NULL if not found. */ -const struct model_config *manifest_find_model(const struct manifest *manifest, +const struct model_config *manifest_find_model(struct updater_config *cfg, + const struct manifest *manifest, const char *model_name); /* diff --git a/futility/updater_dut.c b/futility/updater_dut.c index f152a45e..7062a614 100644 --- a/futility/updater_dut.c +++ b/futility/updater_dut.c @@ -22,7 +22,7 @@ * device data * - >=0 (the matched device index) success */ -int dut_get_manifest_key(char **manifest_key_out) +int dut_get_manifest_key(char **manifest_key_out, struct updater_config *cfg) { #ifdef HAVE_CROSID return crosid_get_firmware_manifest_key(manifest_key_out); @@ -36,22 +36,26 @@ int dut_get_manifest_key(char **manifest_key_out) #endif } -int dut_set_property_string(const char *key, const char *value) +int dut_set_property_string(const char *key, const char *value, + struct updater_config *cfg) + { return VbSetSystemPropertyString(key, value); } -const char *dut_get_property_string(const char *key, char *dest, size_t size) +const char *dut_get_property_string(const char *key, char *dest, size_t size, + struct updater_config *cfg) { return VbGetSystemPropertyString(key, dest, size); } -int dut_set_property_int(const char *key, const int value) +int dut_set_property_int(const char *key, const int value, + struct updater_config *cfg) { return VbSetSystemPropertyInt(key, value); } -int dut_get_property_int(const char *key) +int dut_get_property_int(const char *key, struct updater_config *cfg) { return VbGetSystemPropertyInt(key); } @@ -61,7 +65,7 @@ static int dut_get_mainfw_act(struct updater_config *cfg) { char buf[VB_MAX_STRING_PROPERTY]; - if (!dut_get_property_string("mainfw_act", buf, sizeof(buf))) + if (!dut_get_property_string("mainfw_act", buf, sizeof(buf), cfg)) return SLOT_UNKNOWN; if (strcmp(buf, FWACT_A) == 0) @@ -75,19 +79,19 @@ static int dut_get_mainfw_act(struct updater_config *cfg) /* A helper function to return the "tpm_fwver" system property. */ static int dut_get_tpm_fwver(struct updater_config *cfg) { - return dut_get_property_int("tpm_fwver"); + return dut_get_property_int("tpm_fwver", cfg); } /* A helper function to return the "hardware write protection" status. */ static int dut_get_wp_hw(struct updater_config *cfg) { /* wpsw refers to write protection 'switch', not 'software'. */ - return dut_get_property_int("wpsw_cur") ? WP_ENABLED : WP_DISABLED; + return dut_get_property_int("wpsw_cur", cfg) ? WP_ENABLED : WP_DISABLED; } static int dut_get_platform_version(struct updater_config *cfg) { - return dut_get_property_int("board_id"); + return dut_get_property_int("board_id", cfg); } /* Helper function to return host software write protection status. */ diff --git a/futility/updater_manifest.c b/futility/updater_manifest.c index 6d7d9d41..96faa6c4 100644 --- a/futility/updater_manifest.c +++ b/futility/updater_manifest.c @@ -620,7 +620,8 @@ static int manifest_from_simple_folder(struct manifest *manifest) * system (as defined by model_name). * Returns a model_config from manifest, or NULL if not found. */ -const struct model_config *manifest_find_model(const struct manifest *manifest, +const struct model_config *manifest_find_model(struct updater_config *cfg, + const struct manifest *manifest, const char *model_name) { char *manifest_key = NULL; @@ -637,7 +638,7 @@ const struct model_config *manifest_find_model(const struct manifest *manifest, return &manifest->models[0]; if (!model_name) { - matched_index = dut_get_manifest_key(&manifest_key); + matched_index = dut_get_manifest_key(&manifest_key, cfg); if (matched_index < 0) { ERROR("Failed to get device identity. " "Run \"crosid -v\" for explanation.\n"); diff --git a/futility/updater_quirks.c b/futility/updater_quirks.c index eb4d7e87..31b376c5 100644 --- a/futility/updater_quirks.c +++ b/futility/updater_quirks.c @@ -77,7 +77,8 @@ static int is_ec_software_sync_enabled(struct updater_config *cfg) const struct vb2_gbb_header *gbb; /* Check if current system has disabled software sync or no support. */ - if (!(dut_get_property_int("vdat_flags") & VBSD_EC_SOFTWARE_SYNC)) { + if (!(dut_get_property_int("vdat_flags", cfg) & VBSD_EC_SOFTWARE_SYNC)) + { INFO("EC Software Sync is not available.\n"); return 0; } @@ -142,17 +143,17 @@ static int ec_ro_software_sync(struct updater_config *cfg) "update by EC RO software sync.\n"); return 1; } - dut_set_property_int("try_ro_sync", 1); + dut_set_property_int("try_ro_sync", 1, cfg); return 0; } /* * Returns True if EC is running in RW. */ -static int is_ec_in_rw(void) +static int is_ec_in_rw(struct updater_config *cfg) { char buf[VB_MAX_STRING_PROPERTY]; - return (dut_get_property_string("ecfw_act", buf, sizeof(buf)) && + return (dut_get_property_string("ecfw_act", buf, sizeof(buf), cfg) && strcasecmp(buf, "RW") == 0); } @@ -358,7 +359,7 @@ static int quirk_ec_partial_recovery(struct updater_config *cfg) /* Need full update. */ } else if (!is_ec_software_sync_enabled(cfg)) { /* Message already printed, need full update. */ - } else if (is_ec_in_rw()) { + } else if (is_ec_in_rw(cfg)) { WARN("EC Software Sync detected, will only update EC RO. " "The contents in EC RW will be updated after reboot.\n"); return EC_RECOVERY_RO; diff --git a/futility/updater_utils.h b/futility/updater_utils.h index bdb0c49b..27c3f57d 100644 --- a/futility/updater_utils.h +++ b/futility/updater_utils.h @@ -252,12 +252,15 @@ void dut_init_properties(struct dut_property *props, int num); int dut_get_property(enum dut_property_type property_type, struct updater_config *cfg); -int dut_set_property_string(const char *key, const char *value); -const char *dut_get_property_string(const char *key, char *dest, size_t size); -int dut_set_property_int(const char *key, const int value); -int dut_get_property_int(const char *key); +int dut_set_property_string(const char *key, const char *value, + struct updater_config *cfg); +const char *dut_get_property_string(const char *key, char *dest, size_t size, + struct updater_config *cfg); +int dut_set_property_int(const char *key, const int value, + struct updater_config *cfg); +int dut_get_property_int(const char *key, struct updater_config *cfg); /* Gets the 'firmware manifest key' on the DUT. */ -int dut_get_manifest_key(char **manifest_key_out); +int dut_get_manifest_key(char **manifest_key_out, struct updater_config *cfg); #endif /* VBOOT_REFERENCE_FUTILITY_UPDATER_UTILS_H_ */ |