switch update_engine in cros to major version 2 |
|||||||||||
Issue descriptionCurrently CrOS uses major version 1 for full payloads. We need to change that and switch to major version 2. Major version 2 provides better compression ratio using XZ compression library. It can reduce full payload sizes between 10-20%. The major version 2 support was landed in 7638.0.0. But we have an omaha stepping stone on version 8530.0.0 (M53 stable). This means we can easily switch to major version 2 without any new stepping stones. All devices that have pre M53 images have to update to M53 and then update to the latest image. And since M53 already supports major version 2, everything happens smoothly.
,
Dec 14 2017
Based on my talk to leecy@, There was a misunderstanding on my side. The stepping stones were for all Chrome OS boards. Not for jetstream or lakitu for example. So what we can do is to block these overlays from jumping major version at least for now until we find a better solution.
,
Dec 19 2017
,
Jan 22 2018
,
Jan 30 2018
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/update_engine/+/a548902f8e836b280439d69eaea16c85a3032237 commit a548902f8e836b280439d69eaea16c85a3032237 Author: Amin Hassani <ahassani@google.com> Date: Tue Jan 30 00:38:32 2018 update_payload: remove block tracer block tracing was useful for minor version 1 with move operations (before having A/B updates). But, we do not create that operation anymore and we are in the process of moving to major version 2. So this needs to go BUG= chromium:794404 TEST=unit tests Change-Id: I56d24ef81e8f37c481669d47e5878eb3a321131f Reviewed-on: https://chromium-review.googlesource.com/888546 Commit-Ready: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Ben Chan <benchan@chromium.org> [delete] https://crrev.com/cb2da0df4382f546efd4269851ce814842a4b7fd/scripts/update_payload/block_tracer.py [modify] https://crrev.com/a548902f8e836b280439d69eaea16c85a3032237/scripts/test_paycheck.sh [modify] https://crrev.com/a548902f8e836b280439d69eaea16c85a3032237/scripts/update_payload/payload.py [modify] https://crrev.com/a548902f8e836b280439d69eaea16c85a3032237/scripts/paycheck.py
,
Jun 14 2018
,
Jul 10
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/update_engine/+/dda79e2d9b306c408172d8aacb2ff3459e3bac6a commit dda79e2d9b306c408172d8aacb2ff3459e3bac6a Author: Tudor Brindus <tbrindus@chromium.org> Date: Tue Jul 10 00:59:25 2018 delta_generator: Use "kernel" and "root" partition names internally This commit abandons using "boot" and "system" names internally for major version 1 payloads in favor of "kernel" and "root", which is symmetrical with what's used in major version 2 payloads. BUG= chromium:794404 TEST=no errors running brillo_update_payload with FORCE_MAJOR_VERSION set to either 1 or 2; paycheck.py <generated payload> --check and printing partition names in protobuf confirms correct names are generated Change-Id: I396274812d5586e19a021c05b8b7a415aac976bf Reviewed-on: https://chromium-review.googlesource.com/1119573 Commit-Ready: Tudor Brindus <tbrindus@chromium.org> Tested-by: Tudor Brindus <tbrindus@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_generator/payload_file.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_consumer/delta_performer_integration_test.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_consumer/payload_constants.h [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_consumer/payload_constants.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_generator/payload_generation_config.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/omaha_response_handler_action_unittest.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_generator/generate_delta_main.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_consumer/delta_performer_unittest.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_consumer/delta_performer.cc [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/scripts/brillo_update_payload [modify] https://crrev.com/dda79e2d9b306c408172d8aacb2ff3459e3bac6a/payload_generator/inplace_generator.cc
,
Jul 12
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/update_engine/+/b220d669d465377e2bb55a37a7028c72d93dcef3 commit b220d669d465377e2bb55a37a7028c72d93dcef3 Author: Tudor Brindus <tbrindus@chromium.org> Date: Thu Jul 12 01:48:45 2018 update_payload: Make paycheck take "root" instead of "rootfs" This commit makes paycheck take "root" as the rootfs partition label instead of "rootfs", which makes it consistent with other tooling like delta_generator. BUG= chromium:794404 TEST=test_paycheck.sh and run_unittests Change-Id: I20835e93adbcde459bc86d832e695b38bca55e38 Reviewed-on: https://chromium-review.googlesource.com/1132843 Commit-Ready: Tudor Brindus <tbrindus@chromium.org> Tested-by: Tudor Brindus <tbrindus@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> [modify] https://crrev.com/b220d669d465377e2bb55a37a7028c72d93dcef3/scripts/update_payload/applier.py [modify] https://crrev.com/b220d669d465377e2bb55a37a7028c72d93dcef3/scripts/update_payload/common.py [modify] https://crrev.com/b220d669d465377e2bb55a37a7028c72d93dcef3/scripts/update_payload/checker.py
,
Jul 16
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/chromite/+/43229af5d7df35b7d5a2e8076505f7c688474a48 commit 43229af5d7df35b7d5a2e8076505f7c688474a48 Author: Tudor Brindus <tbrindus@chromium.org> Date: Mon Jul 16 23:31:54 2018 paygen: Remove usage of deprecated check_update_payload args This commit removes the usage of --dst_kern/--dst_root/--src_kern/--src_root in favor of --part_names used alongside --dst_part_paths and --src_part_paths. CQ-DEPEND=CL:1132843 BUG= chromium:794404 TEST=tryjob Change-Id: I867efd4b556ca1d5425c4136f9a68da983496848 Reviewed-on: https://chromium-review.googlesource.com/1132458 Commit-Ready: Tudor Brindus <tbrindus@chromium.org> Tested-by: Tudor Brindus <tbrindus@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Don Garrett <dgarrett@chromium.org> [modify] https://crrev.com/43229af5d7df35b7d5a2e8076505f7c688474a48/lib/paygen/paygen_payload_lib_unittest.py [modify] https://crrev.com/43229af5d7df35b7d5a2e8076505f7c688474a48/lib/paygen/paygen_payload_lib.py
,
Jul 18
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/update_engine/+/5c8c627ba7e5f9e291cd9f060e04c9b4bb4e759c commit 5c8c627ba7e5f9e291cd9f060e04c9b4bb4e759c Author: Tudor Brindus <tbrindus@chromium.org> Date: Wed Jul 18 04:52:50 2018 update_payload: Drop usage of deprecated paycheck.py args from test_paycheck.sh This commit removes usage of paycheck.py's --out_dst_kern, --out_dst_root, --dst_kern, --dst_root, --src_kern, --src_root in favor of the new --part_names used alongside --out_dst_part_paths, --dst_part_paths, --src_part_paths. BUG= chromium:794404 TEST=no errors during run_unittests or test_paycheck.sh with both version 1 and version 2 payloads Change-Id: I1580404301b3460ba6d014cd2cee343d94b8cda3 Reviewed-on: https://chromium-review.googlesource.com/1108960 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Tudor Brindus <tbrindus@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> [modify] https://crrev.com/5c8c627ba7e5f9e291cd9f060e04c9b4bb4e759c/scripts/test_paycheck.sh
,
Jul 18
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/update_engine/+/b432db81adf13012d4f1292162691b87726679bd commit b432db81adf13012d4f1292162691b87726679bd Author: Tudor Brindus <tbrindus@chromium.org> Date: Wed Jul 18 04:52:51 2018 brillo_update_payload: Add paycheck.py-based check command This commit adds a `check` command to brillo_update_payload that is analogous to the existing `verify` command, but uses paycheck.py as a verification tool instead of delta_generator. BUG= chromium:794404 TEST=results from `check` match results from `verify` Change-Id: Ia0f4ca8508b16abaf538e38c478655cd40cbfc19 Reviewed-on: https://chromium-review.googlesource.com/1121100 Commit-Ready: Tudor Brindus <tbrindus@chromium.org> Tested-by: Tudor Brindus <tbrindus@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Sen Jiang <senj@chromium.org> [modify] https://crrev.com/b432db81adf13012d4f1292162691b87726679bd/scripts/brillo_update_payload
,
Aug 3
This bug has an owner, thus, it's been triaged. Changing status to "assigned".
,
Aug 15
,
Sep 20
Are there any exceptions to the stepping stone of "8530.0.0" in any situations at all? Enterprise, or whatever?
,
Oct 27
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/chromite/+/9201a4e1a9369d1618bc8737a97d9f6ded6d6e3e commit 9201a4e1a9369d1618bc8737a97d9f6ded6d6e3e Author: Amin Hassani <ahassani@chromium.org> Date: Sat Oct 27 00:19:14 2018 cros_generate_update_payload: Switch update_engine to major version 2 Per this change, we switch the update payload generation on the server side to major version 2. This new version includes smaller payloads (5%-10%) and has the capability to install multiple partitions (in comparison to a fixed two, kernel and root.) This affects all boards. For more information about the client support and the needed stepping stone refer to the attached issue. BUG= chromium:794404 TEST=cros flash TEST=paygen release builders tryjob Change-Id: I9e4cc9391fd0c5d5720e980f450882d9385c7061 Reviewed-on: https://chromium-review.googlesource.com/1234822 Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Don Garrett <dgarrett@chromium.org> Reviewed-by: Sen Jiang <senj@chromium.org> [modify] https://crrev.com/9201a4e1a9369d1618bc8737a97d9f6ded6d6e3e/scripts/cros_generate_update_payload.py [modify] https://crrev.com/9201a4e1a9369d1618bc8737a97d9f6ded6d6e3e/scripts/cros_generate_update_payload_unittest.py
,
Oct 29
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/chromite/+/f182be28903fe35f4fffd3483b27ccdf1c0009f5 commit f182be28903fe35f4fffd3483b27ccdf1c0009f5 Author: Amin Hassani <ahassani@chromium.org> Date: Mon Oct 29 21:18:55 2018 Revert "cros_generate_update_payload: Switch update_engine to major version 2" This reverts commit 9201a4e1a9369d1618bc8737a97d9f6ded6d6e3e. Reason for revert: < crbug.com/899786 - The paygen itself is working fine, but the update_payload_check failed> Original change's description: > cros_generate_update_payload: Switch update_engine to major version 2 > > Per this change, we switch the update payload generation on the server side to > major version 2. This new version includes smaller payloads (5%-10%) and has the > capability to install multiple partitions (in comparison to a fixed two, kernel > and root.) This affects all boards. For more information about the client > support and the needed stepping stone refer to the attached issue. > > BUG= chromium:794404 > TEST=cros flash > TEST=paygen release builders tryjob > > Change-Id: I9e4cc9391fd0c5d5720e980f450882d9385c7061 > Reviewed-on: https://chromium-review.googlesource.com/1234822 > Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com> > Tested-by: Amin Hassani <ahassani@chromium.org> > Reviewed-by: Don Garrett <dgarrett@chromium.org> > Reviewed-by: Sen Jiang <senj@chromium.org> Bug: chromium:899786 Change-Id: I41c61c50f0fac921922007656f750bc2ee205f82 Reviewed-on: https://chromium-review.googlesource.com/c/1305356 Commit-Queue: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Trybot-Ready: Amin Hassani <ahassani@chromium.org> Reviewed-by: Don Garrett <dgarrett@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> [modify] https://crrev.com/f182be28903fe35f4fffd3483b27ccdf1c0009f5/scripts/cros_generate_update_payload.py [modify] https://crrev.com/f182be28903fe35f4fffd3483b27ccdf1c0009f5/scripts/cros_generate_update_payload_unittest.py
,
Dec 12
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/chromite/+/0e274ee7241f5d0214d135f8b5df95317dcdecd6 commit 0e274ee7241f5d0214d135f8b5df95317dcdecd6 Author: Amin Hassani <ahassani@chromium.org> Date: Wed Dec 12 21:55:51 2018 cros_generate_update_payload: Switch update_engine to major version 2 Per this change, we switch the update payload generation on the server side to major version 2. This new version includes smaller payloads (5%-10%) and has the capability to install multiple partitions (in comparison to a fixed two, kernel and root.) This affects all boards. For more information about the client support and the needed stepping stone refer to the attached issue. The changes in this patch includes: - Generating a postinstall file to be passed to paygen. - Added the metadata signatures to the payload itself. BUG= chromium:794404 TEST=cros flash TEST=manually signed the payload and installed it. Change-Id: Ic520be3a04898f881d4ec745644462d144de43eb Reviewed-on: https://chromium-review.googlesource.com/1369104 Commit-Ready: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Don Garrett <dgarrett@chromium.org> [modify] https://crrev.com/0e274ee7241f5d0214d135f8b5df95317dcdecd6/lib/paygen/utils.py [modify] https://crrev.com/0e274ee7241f5d0214d135f8b5df95317dcdecd6/scripts/cros_generate_update_payload.py [modify] https://crrev.com/0e274ee7241f5d0214d135f8b5df95317dcdecd6/lib/paygen/paygen_payload_lib_unittest.py [modify] https://crrev.com/0e274ee7241f5d0214d135f8b5df95317dcdecd6/lib/paygen/utils_unittest.py [modify] https://crrev.com/0e274ee7241f5d0214d135f8b5df95317dcdecd6/scripts/cros_generate_update_payload_unittest.py [modify] https://crrev.com/0e274ee7241f5d0214d135f8b5df95317dcdecd6/lib/paygen/paygen_payload_lib.py
,
Dec 13
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/chromite/+/95953b68f526685aa47b8edaf8a4eff123b9aeab commit 95953b68f526685aa47b8edaf8a4eff123b9aeab Author: Amin Hassani <ahassani@chromium.org> Date: Thu Dec 13 18:49:16 2018 Revert "cros_generate_update_payload: Switch update_engine to major version 2" This reverts commit 0e274ee7241f5d0214d135f8b5df95317dcdecd6. Reason for revert: <crbug.com/914705> Original change's description: > cros_generate_update_payload: Switch update_engine to major version 2 > > Per this change, we switch the update payload generation on the server side to > major version 2. This new version includes smaller payloads (5%-10%) and has the > capability to install multiple partitions (in comparison to a fixed two, kernel > and root.) This affects all boards. For more information about the client > support and the needed stepping stone refer to the attached issue. > > The changes in this patch includes: > - Generating a postinstall file to be passed to paygen. > - Added the metadata signatures to the payload itself. > > BUG= chromium:794404 > TEST=cros flash > TEST=manually signed the payload and installed it. > > Change-Id: Ic520be3a04898f881d4ec745644462d144de43eb > Reviewed-on: https://chromium-review.googlesource.com/1369104 > Commit-Ready: Amin Hassani <ahassani@chromium.org> > Tested-by: Amin Hassani <ahassani@chromium.org> > Reviewed-by: Amin Hassani <ahassani@chromium.org> > Reviewed-by: Don Garrett <dgarrett@chromium.org> Bug: chromium:794404 Bug: chromium:914705 Change-Id: I69853c275abc7ce62bc165578d6478161191c0ee Reviewed-on: https://chromium-review.googlesource.com/c/1375531 Reviewed-by: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Commit-Queue: Amin Hassani <ahassani@chromium.org> [modify] https://crrev.com/95953b68f526685aa47b8edaf8a4eff123b9aeab/lib/paygen/utils.py [modify] https://crrev.com/95953b68f526685aa47b8edaf8a4eff123b9aeab/scripts/cros_generate_update_payload.py [modify] https://crrev.com/95953b68f526685aa47b8edaf8a4eff123b9aeab/lib/paygen/paygen_payload_lib_unittest.py [modify] https://crrev.com/95953b68f526685aa47b8edaf8a4eff123b9aeab/lib/paygen/utils_unittest.py [modify] https://crrev.com/95953b68f526685aa47b8edaf8a4eff123b9aeab/scripts/cros_generate_update_payload_unittest.py [modify] https://crrev.com/95953b68f526685aa47b8edaf8a4eff123b9aeab/lib/paygen/paygen_payload_lib.py
,
Dec 15
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/update_engine/+/72b80edb1ef2db08564929549eb8d7a1e0b24542 commit 72b80edb1ef2db08564929549eb8d7a1e0b24542 Author: Amin Hassani <ahassani@chromium.org> Date: Sat Dec 15 20:39:13 2018 update_payload: Fix problem with signature size on unsigned payloads If the payload is unsigned (e.g. for test image), then the checker.sigs_file would not exist. So check for that variable before using it. BUG= chromium:794404 BUG=chromium:914705 TEST=manually signing the payload ran update_payload_check with signed and unsigned image TEST=unittests Change-Id: I871137eadef00d012ee926d12fd4eee36a454487 Reviewed-on: https://chromium-review.googlesource.com/1375023 Commit-Ready: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Sen Jiang <senj@chromium.org> [modify] https://crrev.com/72b80edb1ef2db08564929549eb8d7a1e0b24542/scripts/update_payload/checker.py
,
Dec 18
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/chromite/+/eb071961ac9c51c3933b7c9be52f21357724d387 commit eb071961ac9c51c3933b7c9be52f21357724d387 Author: Amin Hassani <ahassani@chromium.org> Date: Tue Dec 18 08:42:45 2018 Reland "cros_generate_update_payload: Switch update_engine to major version 2" This is a reland of 0e274ee7241f5d0214d135f8b5df95317dcdecd6 Original change's description: > cros_generate_update_payload: Switch update_engine to major version 2 > > Per this change, we switch the update payload generation on the server side to > major version 2. This new version includes smaller payloads (5%-10%) and has the > capability to install multiple partitions (in comparison to a fixed two, kernel > and root.) This affects all boards. For more information about the client > support and the needed stepping stone refer to the attached issue. > > The changes in this patch includes: > - Generating a postinstall file to be passed to paygen. > - Added the metadata signatures to the payload itself. > > BUG= chromium:794404 > TEST=cros flash > TEST=manually signed the payload and installed it. > > Change-Id: Ic520be3a04898f881d4ec745644462d144de43eb > Reviewed-on: https://chromium-review.googlesource.com/1369104 > Commit-Ready: Amin Hassani <ahassani@chromium.org> > Tested-by: Amin Hassani <ahassani@chromium.org> > Reviewed-by: Amin Hassani <ahassani@chromium.org> > Reviewed-by: Don Garrett <dgarrett@chromium.org> Bug: chromium:794404 CQ-DEPEND=CL:1375023 Change-Id: Iec4bd6ac705d848c8ff96485297c81de20e3e38d Reviewed-on: https://chromium-review.googlesource.com/1377391 Commit-Ready: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Alec Thilenius <athilenius@google.com> Reviewed-by: Don Garrett <dgarrett@chromium.org> [modify] https://crrev.com/eb071961ac9c51c3933b7c9be52f21357724d387/lib/paygen/utils.py [modify] https://crrev.com/eb071961ac9c51c3933b7c9be52f21357724d387/scripts/cros_generate_update_payload.py [modify] https://crrev.com/eb071961ac9c51c3933b7c9be52f21357724d387/lib/paygen/paygen_payload_lib_unittest.py [modify] https://crrev.com/eb071961ac9c51c3933b7c9be52f21357724d387/lib/paygen/utils_unittest.py [modify] https://crrev.com/eb071961ac9c51c3933b7c9be52f21357724d387/scripts/cros_generate_update_payload_unittest.py [modify] https://crrev.com/eb071961ac9c51c3933b7c9be52f21357724d387/lib/paygen/paygen_payload_lib.py
,
Dec 18
Congratulations everyone, we are on the update engine major version 2 territory :) The first canary release build with major version 2 is green now. Thanks everyone for the help.
,
Dec 18
,
Jan 3
The following revision refers to this bug: https://chromium.googlesource.com/aosp/platform/system/update_engine/+/58e01d6e42664015e22518ff5015b2348d7e7b03 commit 58e01d6e42664015e22518ff5015b2348d7e7b03 Author: Amin Hassani <ahassani@chromium.org> Date: Thu Jan 03 02:14:01 2019 update_engine: brillo_update_payload: Switch to major version 2 Per this CL, we switch the payloads to major version 2 from servers. For more information regarding this switch refer to the attached issue. We also change the default major version to 2. BUG= chromium:794404 TEST=brillo_update_payload Change-Id: I8403805c07210c3d947100efce74dc184a022cdb Reviewed-on: https://chromium-review.googlesource.com/1234590 Commit-Ready: Amin Hassani <ahassani@chromium.org> Tested-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Amin Hassani <ahassani@chromium.org> Reviewed-by: Don Garrett <dgarrett@chromium.org> Reviewed-by: Sen Jiang <senj@chromium.org> [modify] https://crrev.com/58e01d6e42664015e22518ff5015b2348d7e7b03/scripts/brillo_update_payload [modify] https://crrev.com/58e01d6e42664015e22518ff5015b2348d7e7b03/payload_generator/generate_delta_main.cc
,
Jan 11
Great! Thanks for the efforts!
,
Jan 14
|
|||||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by ahass...@chromium.org
, Dec 13 2017