)]}'
{
  "commit": "6dba972b6ab1246864d3af0eaa3effcda29407d1",
  "tree": "9e189ab7e3ff1d922dcdf22ad92178ab5fd16133",
  "parents": [
    "ff1f3b91c31706d1e73a82ec928fd9bdd080f96f"
  ],
  "author": {
    "name": "Jae Hoon Kim",
    "email": "kimjae@chromium.org",
    "time": "Mon May 23 16:21:33 2022 -0700"
  },
  "committer": {
    "name": "Chromeos LUCI",
    "email": "chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu May 26 15:48:16 2022 +0000"
  },
  "message": "futility: [deferredupdates] Defer setting firmware cookies\n\nThis is the firmware part of go/deferredupdates.\n\nDuring autoupdates, it\u0027s required to defer firmware cookies (a.k.a. slot\nswitching) to not try the updated RW firmware. Instead it is deferred\nfor the values to be updated at a later time, when the actual update\nshould be applied.\n\nSince there is not a clear communication method between\nfutility and postinstall+autoupdater, it\u0027ll be the case that STATUS will\nbe used as the IPC for postinstall+autoupdater to determine when to\nupdate firmware cookies w/ a UUID.\n\n```\n// autoupdate\nlocalhost ~ # chromeos-firmwareupdate --mode\u003dautoupdate --wp\u003d1\n\n  Machine Model: gimble\n  Write Protect: HW\u003d0 SW\u003d0\n  Last Boot Version: RO\u003dGoogle_Gimble.14498.0.0 ACT/B\u003dGoogle_Gimble.14498.0.0\n  Firmware Updater:  RO\u003dGoogle_Gimble.14505.93.0    RW\u003dGoogle_Gimble.14505.93.0\n\n\u003e\u003e Starting firmware updater.\n\u003e\u003e Target image: images/bios-gimble.ro-14505-93-0.rw-14505-93-0.bin (RO:Google_Gimble.14505.93.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14505.93.0).\n\u003e\u003e Current system: \u003csys-flash\u003e (RO:Google_Gimble.14498.0.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14498.0.0).\n\u003e\u003e Write protection: 1 (enabled; HW\u003d1, SW\u003d1).\n\u003e\u003e TRY-RW UPDATE: Updating RW_SECTION_A to try on reboot.\n\u003e\u003e DONE: Firmware updater exits successfully.\n\nfw_prev_result          \u003d trying                         # [RO/str] Firmware result of previous boot\nfw_prev_tried           \u003d B                              # [RO/str] Firmware tried on previous boot (A or B)\nfw_result               \u003d success                        # [RW/str] Firmware result this boot\nfw_tried                \u003d B                              # [RO/str] Firmware tried this boot (A or B)\nfw_try_count            \u003d 10                             # [RW/int] Number of times to try fw_try_next\nfw_try_next             \u003d A                              # [RW/str] Firmware to try next (A or B)\nfw_vboot2               \u003d 1                              # [RO/int] 1 if firmware was selected by vboot2 or 0 otherwise\nfwb_tries               \u003d 10                             # [RW/int] Try firmware B count\nfwid                    \u003d Google_Gimble.14498.0.0        # [RO/str] Active firmware ID\nfwupdate_tries          \u003d 0                              # [RW/int] Times to try OS firmware update (inside kern_nv)\nmainfw_act              \u003d B                              # [RO/str] Active main firmware\n\n// deferupdate HOLD\nlocalhost ~ # chromeos-firmwareupdate --mode\u003ddeferupdate_hold --wp\u003d1\n\n  Machine Model: gimble\n  Write Protect: HW\u003d0 SW\u003d0\n  Last Boot Version: RO\u003dGoogle_Gimble.14498.0.0 ACT/B\u003dGoogle_Gimble.14498.0.0\n  Firmware Updater:  RO\u003dGoogle_Gimble.14505.93.0    RW\u003dGoogle_Gimble.14505.93.0\n\n\u003e\u003e Starting firmware updater.\n\u003e\u003e Target image: images/bios-gimble.ro-14505-93-0.rw-14505-93-0.bin (RO:Google_Gimble.14505.93.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14505.93.0).\n\u003e\u003e Current system: \u003csys-flash\u003e (RO:Google_Gimble.14498.0.0, RW/A:Google_Gimble.14505.93.0, RW/B:Google_Gimble.14498.0.0).\n\u003e\u003e Write protection: 1 (enabled; HW\u003d1, SW\u003d1).\n\u003e\u003e TRY-RW UPDATE: Updating RW_SECTION_A to try on reboot.\n\u003e\u003e DEFER UPDATE: Defer setting cookies for RW_SECTION_A.\n\u003e\u003e DONE: Firmware updater exits successfully.\n\nfw_prev_result          \u003d trying                         # [RO/str] Firmware result of previous boot\nfw_prev_tried           \u003d B                              # [RO/str] Firmware tried on previous boot (A or B)\nfw_result               \u003d success                        # [RW/str] Firmware result this boot\nfw_tried                \u003d B                              # [RO/str] Firmware tried this boot (A or B)\nfw_try_count            \u003d 0                              # [RW/int] Number of times to try fw_try_next\nfw_try_next             \u003d B                              # [RW/str] Firmware to try next (A or B)\nfw_vboot2               \u003d 1                              # [RO/int] 1 if firmware was selected by vboot2 or 0 otherwise\nfwb_tries               \u003d 0                              # [RW/int] Try firmware B count\nfwid                    \u003d Google_Gimble.14498.0.0        # [RO/str] Active firmware ID\nfwupdate_tries          \u003d 0                              # [RW/int] Times to try OS firmware update (inside kern_nv)\nmainfw_act              \u003d B                              # [RO/str] Active main firmware\n\n// deferupdate APPLY\nlocalhost ~ # chromeos-firmwareupdate --mode\u003ddeferupdate_apply --wp\u003d1\n\n  Machine Model: gimble\n  Write Protect: HW\u003d0 SW\u003d1\n  Last Boot Version: RO\u003dGoogle_Gimble.14498.0.0 ACT/B\u003dGoogle_Gimble.14498.0.0\n  Firmware Updater:  RO\u003dGoogle_Gimble.14505.106.0    RW\u003dGoogle_Gimble.14505.106.0\n\n\u003e\u003e Starting firmware updater.\nINFO: update_firmware: Apply defer updates, only setting cookies for the next boot slot.\n\u003e\u003e DONE: Firmware updater exits successfully.\n\nfw_prev_result          \u003d trying                         # [RO/str] Firmware result of previous boot\nfw_prev_tried           \u003d B                              # [RO/str] Firmware tried on previous boot (A or B)\nfw_result               \u003d success                        # [RW/str] Firmware result this boot\nfw_tried                \u003d B                              # [RO/str] Firmware tried this boot (A or B)\nfw_try_count            \u003d 10                             # [RW/int] Number of times to try fw_try_next\nfw_try_next             \u003d A                              # [RW/str] Firmware to try next (A or B)\nfw_vboot2               \u003d 1                              # [RO/int] 1 if firmware was selected by vboot2 or 0 otherwise\nfwb_tries               \u003d 10                             # [RW/int] Try firmware B count\nfwid                    \u003d Google_Gimble.14498.0.0        # [RO/str] Active firmware ID\nfwupdate_tries          \u003d 0                              # [RW/int] Times to try OS firmware update (inside kern_nv)\nmainfw_act              \u003d B                              # [RO/str] Active main firmware\n```\n\nBUG\u003db:232304971\nTEST\u003dchromeos-firmwareupdate w/ comment above\nBRANCH\u003dNone\n\nSigned-off-by: Jae Hoon Kim \u003ckimjae@chromium.org\u003e\nChange-Id: Idcfc5864a2cfc2b46a8b936bbab61e3da7c62596\nReviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/vboot_reference/+/3661357\nCommit-Queue: Yu-Ping Wu \u003cyupingso@chromium.org\u003e\nReviewed-by: Hung-Te Lin \u003chungte@chromium.org\u003e\nReviewed-by: Yu-Ping Wu \u003cyupingso@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "dcbc445016ccfc55ce3ac476d6ad1ed62397bfed",
      "old_mode": 33188,
      "old_path": "futility/updater.c",
      "new_id": "c28c5baeb5d1cac98453dab9232381f6651e57f1",
      "new_mode": 33188,
      "new_path": "futility/updater.c"
    }
  ]
}
