38818fbf1f2f937051b5bcc01ff74539a3c9b27d |
|
23-Mar-2016 |
Alex Deymo <deymo@google.com> |
Introduce PayloadVersion struct for version information. This new little struct encapsulates the version information (major and minor version numbers) and the zlib fingerprint information. Now, instead of querying throughout if the version number is certain value, we ask the PayloadVersion struct whether certain operation is allowed in that version or not. This moves the logic of what's supported and what's not to a single place and eliminates the need to pass several booleans to the helper functions. Bug: 24578399 TEST=Unittest still pass. (cherry picked from commit a4073ef63482fd08c3678982f7d153360b088094) Change-Id: I756d0c2cc217d23df1822f961bb7d82f64974fa9
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|
f25eb491ff60f21659a7e2b230ee1c83957034c7 |
|
26-Feb-2016 |
Alex Deymo <deymo@google.com> |
Fix resuming canceled updates. Resuming an interrupted update was broken in several ways. First, DeltaPerformer::CanResumeUpdate was checking for the number of resume-failures to be more than the limit, not less. Then, the resume logic didn't work for payload v2 when there was a metadata signature included in the payload. Finally, resuming an update after reading the payload signature (in payload v2) was not updating the checkpoint, but storing the signature causing it to attempt to parse it again and fail. Bug: 27047026 Bug: chromium:590410 TEST=Manual procedure: 1. Start an update: update_engine_client --update ... 2. Cancel the update: update_engine_client --cancel 3. Re-start the same update: update_engine_client --update ... -> The update should resume from the previous point. Change-Id: I60134de155aa073a7ba91174cceea7297e5f8d17
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|
5fe0c4ede81b82ae3425ddbbb698eceef14cbc78 |
|
17-Feb-2016 |
Alex Deymo <deymo@google.com> |
Fix unittest build in x86_64. Some size_t values (generally resulting from X.size() calls) were compared to off_t values (such as utils::FileSize()) which resulted in a compile error on x86_64 targets. This patch fixes those issues with explicit casts in the unittests since the range of the expected values is small enough. Bug: 26955860 TEST=`mma` on edison-eng and brilloemulator_x86_64-eng. Change-Id: I2d09d356e1b97ab6527b17596fe20d425da6d519
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|
80f70ff45f8ea9a679c0c3ed0dc143dd2fe2b63e |
|
11-Feb-2016 |
Alex Deymo <deymo@google.com> |
Build unittests in Brillo. Many unittests do not pass for simple reasons that will be addressed later. This CL includes all the changes to make the unittests build. In particular, the generated DBus mocks, required to build several unittests are now included here. The dbus-constants.h files were moved to the system_api repo, so they can be removed from here. The unittest build is only enabled for Brillo targets, since non-Brillo targets don't even build DBus. Bug: 26955860 TEST=`mmma` on edison-eng (and aosp_arm-eng). Change-Id: Ib38241f0a6eb99b1d60d72db6bcfd125d38e3fad
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|
64d9878470aa7b388e971862181daf6260851602 |
|
06-Feb-2016 |
Alex Deymo <deymo@google.com> |
Replace is_full_update boolean with a payload_state enum. The "is_full_update" flag in the InstallPlan is required to decide whether we should run a FilesystemVerification step before start downloading the payload (for delta payloads) or not (for full payloads). This step is done before start downloading the payload and not after downloading the metadata to avoid long delays in the connection which would then drop and require a retry. Since the not so recent inclusion of the source_data_hash field in the delta operations, the source data is verified on each operation, so the install plan field and the pre-download FilesystemVerification is not needed anymore. To help deprecate this process, which is not included in the non-Brillo version, this patch changes the is_full_update field to a payload_state enum with a third "unknown" state that will be changed to delta or full once the payload metadata is parsed. Bug: 25631949 TEST=unittests updated. TEST=Pushed a delta update to edison-eng and a non-Brillo target. Change-Id: I17d8bf58990d8465bb8487adc66601f1c1dfca6d
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|
98e691cc6debda3ef671acba001bebd45da36377 |
|
05-Feb-2016 |
Alex Deymo <deymo@google.com> |
New "properties" sub-command to export payload properties. The new brillo_update_payload sub-command "properties" dumps a list of properties for a given signed or unsigned payload. These properties are normally included in the Omaha response, and extracted from python in chromite. This new sub-command helps to encapsulate the properties used by the server side wehn serving a payload and to let the Android application pass these required properties. The properties include the payload and metadata hash and size. Bug: 26991255 TEST=FEATURES=test emerge-link update_engine TEST=mmma system/update_engine TEST=`brillo_update_payload properties` for signed and unsigned payloads. Change-Id: I4602ea4b8dc269e4cc66df4293ef9765d8dd031d
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|
542c19bf271011913a9f352f58e140224c936736 |
|
03-Dec-2015 |
Alex Deymo <deymo@google.com> |
Remove SystemState references from DeltaPerformer. DeltaPerformer is used as part of the DownloadAction and had references to the global SystemState. The common references to BootControlInterface (to query the partitions based on the names from the payload) and the HardwareInterface (for dev-mode bits) are now referenced directly from the DeltaPerformer. The calls to UpdateAttempter and PayloadState were moved to the DownloadActionDelegate since these calls are received by classes outside the payload_consumer. Bug: 25773375 TEST=FEATURES=test emerge-link update_engine Change-Id: Id2e81d5ccf835cad22f03b069c681dcce104c456
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|
39910dcd1d68987ccee7c3031dc269233a8490bb |
|
10-Nov-2015 |
Alex Deymo <deymo@google.com> |
Split payload application code into a subdirectory. This patch splits from the main libupdate_engine code the part that is strictly used to download and apply a payload into a new static library, moving the code to subdirectories. The new library is divided in two subdirectories: common/ and payload_consumer/, and should not depend on other update_engine files outside those two subdirectories. The main difference between those two is that the common/ tools are more generic and not tied to the payload consumer process, but otherwise they are both compiled together. There are still dependencies from the new libpayload_consumer library into the main directory files and DBus generated files. Those will be addressed in follow up CLs. Bug: 25197634 Test: FEATURES=test emerge-link update_engine; `mm` on Brillo. Change-Id: Id8d0204ea573627e6e26ca9ea17b9592ca95bc23
/system/update_engine/payload_consumer/delta_performer_integration_test.cc
|