Commit Graph

5425 Commits

Author SHA1 Message Date
Tao Bao efcd98da32 Merge "applypatch: Change the patch parameter to const Value& in Apply{BSDiff,Image}Patch." am: de07371b03
am: e2296b7a25

Change-Id: I7e1a7bd12c1cc3a03b7947b22a947eee16dacbff
2017-11-11 01:20:04 +00:00
Tao Bao e2296b7a25 Merge "applypatch: Change the patch parameter to const Value& in Apply{BSDiff,Image}Patch."
am: de07371b03

Change-Id: I2261486420f8e55cfbdd61f130be24f6e4deebf4
2017-11-11 01:18:04 +00:00
Tao Bao de07371b03 Merge "applypatch: Change the patch parameter to const Value& in Apply{BSDiff,Image}Patch." 2017-11-11 01:09:47 +00:00
Tao Bao 1e0941f4f6 applypatch: Change the patch parameter to const Value& in Apply{BSDiff,Image}Patch.
It used to be "const Value*", but nullptr won't be a valid input.

Test: recovery_host_test; recovery_component_test
Change-Id: I904b5689ac3e64504088bf0544c9fb5d45a52243
2017-11-10 12:18:34 -08:00
Alex Deymo 0347049768 Merge "Include bspatch.h from bsdiff/" am: 29cd3215ec
am: e73bca40dc

Change-Id: I22144a647f408bcf8a403db07937ce0793e531a4
2017-11-10 09:59:04 +00:00
Alex Deymo e73bca40dc Merge "Include bspatch.h from bsdiff/"
am: 29cd3215ec

Change-Id: Ib53e96bee59300c4f94bf5de1801d4482a5abe3c
2017-11-10 09:57:04 +00:00
Alex Deymo 29cd3215ec Merge "Include bspatch.h from bsdiff/" 2017-11-10 09:54:11 +00:00
Tao Bao ff0143d09e Merge "uncrypt: Move to Soong." am: 992bccfef4
am: e6250057b8

Change-Id: I360688f91c83bf2db3634ebc0f20ea2876980c03
2017-11-09 23:31:50 +00:00
Tao Bao e6250057b8 Merge "uncrypt: Move to Soong."
am: 992bccfef4

Change-Id: If87cf6f7e32eb8089ec72207222eb5ec0b22adac
2017-11-09 23:29:04 +00:00
Tao Bao 992bccfef4 Merge "uncrypt: Move to Soong." 2017-11-09 23:09:33 +00:00
Tao Bao c5df267599 Merge "Load-balancing update_verifier worker threads." am: f1e70b93f1
am: 1d8cb3659a

Change-Id: I7e8ae9f60ef37d6948fa4d048b7a4317adc5e20c
2017-11-09 20:49:09 +00:00
Tao Bao 1d8cb3659a Merge "Load-balancing update_verifier worker threads."
am: f1e70b93f1

Change-Id: Ia1224ef69a80ebd247943c2f010bc7cee00e3f69
2017-11-09 20:35:38 +00:00
Tao Bao a2a68a522e uncrypt: Move to Soong.
Test: mmma -j bootable/recovery
Change-Id: I405f2a70f51904c02c49a287c23cbc115a4c5132
2017-11-09 12:34:00 -08:00
Treehugger Robot f1e70b93f1 Merge "Load-balancing update_verifier worker threads." 2017-11-09 20:14:08 +00:00
Tao Bao 160514bf2b Load-balancing update_verifier worker threads.
Prior to this CL, the block verification works were assigned based on
the pattern of the ranges, which could lead to unbalanced workloads. This
CL adds RangeSet::Split() and moves update_verifier over.

a) For the following care_map.txt on walleye:
system
20,0,347,348,540,556,32770,33084,98306,98620,163842,164156,229378,229692,294914,295228,524289,524291,524292,524348,529059
vendor
8,0,120,135,32770,32831,94564,98304,98306

Measured the time costs prior to and with this CL with the following
script.

$ cat test_update_verifier.sh
  #!/bin/sh

  adb shell stop
  adb shell "cp /data/local/tmp/care_map.txt /data/ota_package/"
  for i in $(seq 1 50)
  do
    echo "Iteration: $i"
    adb shell "bootctl set-active-boot-slot 0"
    adb shell "echo 3 > /proc/sys/vm/drop_caches"
    adb shell "time /data/local/tmp/update_verifier"
    sleep 3
  done

Without this CL, the average time cost is 5.66s, while with the CL it's
reduced to 3.2s.

b) For the following care_map.txt, measured the performance on marlin:
system
18,0,271,286,457,8350,32770,33022,98306,98558,163842,164094,196609,204800,229378,229630,294914,295166,501547
vendor
10,0,42,44,85,2408,32770,32806,32807,36902,74242

It takes 12.9s and 5.6s without and with the CL respectively.

Fixes: 68553827
Test: recovery_unit_test
Test: Flash new build and trigger update_verifier. Check the balanced
      block verification.
Change-Id: I5fa4bf09a84e6b9b0975ee5f522724464181333f
2017-11-08 23:04:28 -08:00
Alex Deymo 3afe5f5691 Include bspatch.h from bsdiff/
The function ApplyBSDiffPatch() defined in bspatch.cpp is declared in
applypatch.h, but it includes "bspatch.h" from the bsdiff/ project,
which is at least confusing. There is no "bspatch.h" in this repo, so
the include actually reffers to the one in bsdiff. This patch uses the
"bsdiff/bspatch.h" form instead to avoid confusion.

Bug: None
Test: It builds.

Change-Id: I6b6ffd6725b2b34ff644aed93683f69779103661
2017-11-08 12:29:58 +01:00
Tao Bao 485d3da2d0 Merge "otautil: Remove the aborts in RangeSet::Parse()." am: 16b8b8fd1c
am: 236a7261cb

Change-Id: I5b3dec8110e644b9483ae59d47d09fcad21cd717
2017-11-08 02:12:27 +00:00
Tao Bao 236a7261cb Merge "otautil: Remove the aborts in RangeSet::Parse()."
am: 16b8b8fd1c

Change-Id: Ib3b934d2ef5db25786016896868e021d7e087d4d
2017-11-08 02:07:46 +00:00
Tao Bao 16b8b8fd1c Merge "otautil: Remove the aborts in RangeSet::Parse()." 2017-11-08 01:51:17 +00:00
Tao Bao 6798315327 otautil: Remove the aborts in RangeSet::Parse().
We used to CHECK and abort on parsing errors. While it works fine for
the updater use case (because recovery starts updater in a forked
process and collects the process exit code), it's difficult for other
clients to use RangeSet as a library (e.g. update_verifier).

This CL switches the aborts to returning empty RangeSet instead. Callers
need to check the parsing results explicitly.

The CL also separates RangeSet::PushBack() into a function, and moves
SortedRangeSet::Clear() into RangeSet.

Test: recovery_unit_test
Test: Sideload an OTA package with the new updater on angler.
Test: Sideload an OTA package with injected range string errors. The
      updater aborts from the explicit checks.
Change-Id: If2b7f6f41dc93af917a21c7877a83e98dc3fd016
2017-11-07 12:50:02 -08:00
Tianjie Xu 16a4cbe79b Merge "Switch to bionic gtest in bootable/recovery" am: bf41f2aa23
am: c1ab2bb535

Change-Id: Ia85a412604b4af35d001236d5cef74acb9bc2229
2017-11-06 19:04:34 +00:00
Tianjie Xu c1ab2bb535 Merge "Switch to bionic gtest in bootable/recovery"
am: bf41f2aa23

Change-Id: I90238f94c3f3eeafe3f24d417f7f6c66ac3cf5fd
2017-11-06 19:02:01 +00:00
Tianjie Xu bf41f2aa23 Merge "Switch to bionic gtest in bootable/recovery" 2017-11-06 18:56:27 +00:00
Tao Bao da62ff4218 Merge "Clean up fuse_sideload and add a testcase." am: 73dca3e983
am: 6d61e2123b

Change-Id: Id26c2ef6015f46553d3f87b6d839d9a48192f648
2017-11-04 14:33:56 +00:00
Tao Bao 6d61e2123b Merge "Clean up fuse_sideload and add a testcase."
am: 73dca3e983

Change-Id: I1d895338f32c5814c22f7134aee579c2a252e8bb
2017-11-04 14:31:55 +00:00
Tao Bao 73dca3e983 Merge "Clean up fuse_sideload and add a testcase." 2017-11-04 14:27:48 +00:00
Tao Bao 91a7aa4577 Clean up fuse_sideload and add a testcase.
This CL mainly changes:
a) moving the interface in struct provider_vtab to std::function;
b) code cleanup, such as moving the declaration closer to the uses,
   using explicit type conversion.

Test: recovery_component_test
Test: minadbd_test
Test: Sideload a package on marlin.
Change-Id: Id0e3c70f1ada54a4cd985b54c84438c23ed4687e
2017-11-03 18:30:41 -07:00
Jin Qian 9a631d2764 Merge "recovery: remove make_ext4fs from updater" am: 3f06512714
am: 59b20d6565

Change-Id: I62615596c4ff07a597c234ca620bee19b2660fa2
2017-11-03 23:26:23 +00:00
Jin Qian 59b20d6565 Merge "recovery: remove make_ext4fs from updater"
am: 3f06512714

Change-Id: Iaccf79dfa4fc7b85071567cd0d58d294478ea0f3
2017-11-03 23:22:23 +00:00
Treehugger Robot 3f06512714 Merge "recovery: remove make_ext4fs from updater" 2017-11-03 23:18:25 +00:00
Jin Qian 87c005bff7 Merge "recovery: fix library dependency" am: 0da645fefa
am: 4d079261e5

Change-Id: I7adec4c4bff3d17782b6ef0f58984e36e2c717a5
2017-11-03 22:39:26 +00:00
Jin Qian 4d079261e5 Merge "recovery: fix library dependency"
am: 0da645fefa

Change-Id: If42448e311abde44b730f31e8ec779e4fe660ca3
2017-11-03 22:29:20 +00:00
Treehugger Robot 0da645fefa Merge "recovery: fix library dependency" 2017-11-03 22:16:55 +00:00
Tianjie Xu a88cc5440e Switch to bionic gtest in bootable/recovery
We encountered segfaults in Imgdiff host tests due to the failure to
reset states of getopt. The problem can be solved by switching to use
bionic's gtest where a new process is forked for each test.

Also modify the recovery_component_test to make sure it runs in parallel.
Changes include:
  1. Merge the writes to misc partition into one single test.
  2. Change the hard coded location "/cache/saved.file" into a configurable
  variable.

Bug: 67849209
Test: recovery tests pass

Change-Id: I165d313f32b83393fb7922c5078636ac40b50bc2
2017-11-03 14:09:11 -07:00
Jin Qian 502fd1c5e8 recovery: remove make_ext4fs from updater
Bug: 64395169
Change-Id: I6f6a4f82b225435c6ad5c828e110fa135e6f7579
2017-11-03 13:54:59 -07:00
Jin Qian 000148dbc9 recovery: fix library dependency
After removing some deadcode from libext4_utils, libz is optimized
out by linker. However, it's still required by libvintf. Moving libz
down the list fixed the build.

Bug: 64395169
Change-Id: I23ecd70c83af83a219faced59d8227dc3c4e43d5
2017-11-03 13:43:48 -07:00
Tao Bao c08ec028f2 Merge "tests: Clean up the files in TemporaryDir." am: 2cf44d08cf
am: fc8066feed

Change-Id: I7f4c8648a856bc8f61971080a2f75c81e2c2bbc7
2017-11-03 18:59:36 +00:00
Tao Bao fc8066feed Merge "tests: Clean up the files in TemporaryDir."
am: 2cf44d08cf

Change-Id: I37a43d8454caebc18e2916afffbe8b894cd5374e
2017-11-03 18:57:36 +00:00
Treehugger Robot 2cf44d08cf Merge "tests: Clean up the files in TemporaryDir." 2017-11-03 18:51:34 +00:00
Tao Bao e8d7946827 Merge "Add a repohook to clang-format changes." am: 439263cb83
am: f3e2017309

Change-Id: Ib1c719f796c47e8413b0c6da4df0dbe779eab10e
2017-11-03 03:33:43 +00:00
Tao Bao f3e2017309 Merge "Add a repohook to clang-format changes."
am: 439263cb83

Change-Id: I954d3514875799af055eedd6fe5b536827f2ef12
2017-11-03 03:31:14 +00:00
Tao Bao 439263cb83 Merge "Add a repohook to clang-format changes." 2017-11-03 03:27:15 +00:00
Xin Li b127b6c4a8 Merge commit '04bcf3ee761d8648d0247dd8322e3542c0319464' from oc-mr1-dev-plus-aosp into stage-aosp-master
am: 04a8b2b532

Change-Id: Ib5b0e4e8e215229f7427f358dfa69e06ba466e58
2017-11-03 01:00:30 +00:00
Tao Bao 6b1aae376a Add a repohook to clang-format changes.
It would clang-format according to the local style file in
.clang-format, unless explicitly skipped with --no-verify.

An example output is as follows:

[COMMIT dda6b1ee4247] test
[FAILED] clang_format
    The following files have formatting errors:
        screen_ui.cpp
    You can run `/mnt/aosp/aosp-master/tools/repohooks/tools/clang-format.py --fix --clang-format /mnt/aosp/aosp-master/prebuilts/clang/host/linux-x86/clang-stable/bin/clang-format --git-clang-format /mnt/aosp/aosp-master/prebuilts/clang/host/linux-x86/clang-stable/bin/git-clang-format --style file --commit dda6b1ee424710760bbab4421e95239fa6a2b40d` to fix this
[COMMIT be69a2c4ba16] Add a repohook to clang-format the change.
[RUNNING 2/2] clang_format
An automatic fix can be attempted for the "clang_format" hook. Do you want to run it? (Yes/no)?
Fix successfully applied. Amend the current commit before attempting to upload again.

More details about repohooks can be found at:

  https://android.googlesource.com/platform/tools/repohooks/

Test: `repo upload` a CL.
Change-Id: Ie8203a317eb3be7acd5592e03374873997647aa0
2017-11-02 16:23:58 -07:00
Xin Li 04a8b2b532 Merge commit '04bcf3ee761d8648d0247dd8322e3542c0319464' from
oc-mr1-dev-plus-aosp into stage-aosp-master

Change-Id: Ie321cc4ce4a2324ca7bf0f3493f23ea7999765b8
2017-11-02 15:49:26 -07:00
Tianjie Xu 1d71857179 Merge "Add libbrotli as a dependency for libbsdiff" am: 43f194c8bc
am: 57e16e4f77

Change-Id: I66dad0ca574489bb07f1a4f4726ec9d022b082ce
2017-11-02 17:57:09 +00:00
Tianjie Xu 57e16e4f77 Merge "Add libbrotli as a dependency for libbsdiff"
am: 43f194c8bc

Change-Id: Ia4dbce188995448384a94be87a3020f5ca033365
2017-11-02 17:54:37 +00:00
Tianjie Xu 43f194c8bc Merge "Add libbrotli as a dependency for libbsdiff" 2017-11-02 17:50:40 +00:00
Tao Bao 54c1db4b3e tests: Clean up the files in TemporaryDir.
~TemporaryDir() calls rmdir(2) directly, which works with empty
directories only.

Test: Run recovery_host_test; No leftover on host.
Test; Run recovery_component_test on marlin; No leftover on device.
Change-Id: Ib510efb16eeda61b34161e2b386499e6cb79a4ca
2017-11-01 22:34:51 -07:00
Tao Bao ba1217ee00 update_verifier: Fix the wrong computation with group_range_count.
am: 559a6d1d2a

Change-Id: Ie6a4969bf7ebd471b881d5ea93ed4bc55611b99f
2017-11-02 00:41:59 +00:00