Commit Graph

3822 Commits

Author SHA1 Message Date
Tao Bao d87bccd567 Merge "Fix the double free in verify_package_compatibility()." am: ce91df8293
am: dc388aab8b

Change-Id: I954027631743765ff3155a622a6618ac85056090
2017-04-18 03:31:49 +00:00
Tao Bao 35849591a0 Merge changes from topic 'libvintf' am: c1ca21a32d
am: beb1cb1df5

Change-Id: I293d9e3b2820fe8c41e91032d7be525a7a9e4c38
2017-04-18 03:31:40 +00:00
Tao Bao dc388aab8b Merge "Fix the double free in verify_package_compatibility()."
am: ce91df8293

Change-Id: I44f27412ad803b560a0ea317e7e0e2837e6fad39
2017-04-18 03:27:23 +00:00
Tao Bao beb1cb1df5 Merge changes from topic 'libvintf'
am: c1ca21a32d

Change-Id: I8ba8fc5a7f403a554cf5c1f01b0ccd0b19848277
2017-04-18 03:27:10 +00:00
Tao Bao ce91df8293 Merge "Fix the double free in verify_package_compatibility()." 2017-04-18 03:21:07 +00:00
Tao Bao c1ca21a32d Merge changes from topic 'libvintf'
* changes:
  Add the missing LOCAL_CFLAGS for librecovery.
  Verify the package compatibility with libvintf.
2017-04-18 03:20:49 +00:00
Tao Bao fdc5ac8051 Merge "libmounts: Remove two dead functions." am: 4854e77fd2
am: 7e031fdfe6

Change-Id: Ie4336244e7d1343cd28ab0ea7a0b116138e9cf77
2017-04-17 23:23:54 +00:00
Tao Bao 7e031fdfe6 Merge "libmounts: Remove two dead functions."
am: 4854e77fd2

Change-Id: Iac3ba66cea9a551141ba7c2c97b8eae14b9ec881
2017-04-17 23:18:54 +00:00
Tao Bao 4854e77fd2 Merge "libmounts: Remove two dead functions." 2017-04-17 23:10:28 +00:00
Tao Bao 99c549db74 Fix the double free in verify_package_compatibility().
"""
void* cookie;
std::unique_ptr<void, decltype(&EndIteration)> guard(cookie, EndIteration);
  ...
EndIteration(cookie);
"""

The above pattern is buggy that frees 'cookie' twice.

Bug: 37413730
Test: Build new recovery and adb sideload a previously crashed package
      that contains 'compatibility.zip'.
Change-Id: I183c33827fb28a438ebaedda446e84cabe7cb92d
(cherry picked from commit f978278995)
2017-04-17 15:59:10 -07:00
Tao Bao 7fdcb19e10 Add the missing LOCAL_CFLAGS for librecovery.
The -DAB_OTA_UDPATER part was missing when separating the librecovery
module (commit 62e0bc7586).

Bug: 37300957
Test: Build sailfish recovery image and sideload full OTA.
Change-Id: Idd25662f6bc812c1aca95b096802f59b051f8d63
(cherry picked from commit 25dbe1717e)
2017-04-17 15:58:56 -07:00
Tao Bao e95902280c libmounts: Remove two dead functions.
find_mounted_volume_by_device() and remount_read_only() have no active
users. And we don't have a code logic that requires these two functions.

Test: mmma bootable/recovery
Test: Code search shows no user.
Change-Id: Ib11c2ba93ee087ea020c1337eb06686a6165f894
2017-04-16 15:53:47 -07:00
Josh Gao 572b7ba1bc Merge "minadbd: switch adb_thread_create to std::thread." am: d3d91e5595
am: 0836159ce1

Change-Id: Ic6f031298f1f5bf189baf030d225baa67f5c46ca
2017-04-14 20:09:45 +00:00
Josh Gao 0836159ce1 Merge "minadbd: switch adb_thread_create to std::thread."
am: d3d91e5595

Change-Id: If7c9c8cf8d2d8c93c521d3426c55be9068c817cc
2017-04-14 20:07:46 +00:00
Josh Gao d3d91e5595 Merge "minadbd: switch adb_thread_create to std::thread." 2017-04-14 20:04:04 +00:00
Josh Gao 2aa0d3abb4 minadbd: switch adb_thread_create to std::thread.
Test: treehugger
Change-Id: I7edcb13eb1fc6d4f36f5a764a1b647fbf9cd063e
2017-04-13 14:28:00 -07:00
Tao Bao 1d866050eb Verify the package compatibility with libvintf.
verify_package_compatibility() is added to parse the compatibility entry
(compatibility.zip) in a given OTA package. If entry is present, the
information is sent to libvintf to check the compatibility.

This CL doesn't actually call libvintf, since the API there is not
available yet.

Bug: 36597505
Test: Doesn't break the install with existing packages (i.e. w/o the
      compatibility entry).
Test: recovery_component_test
Change-Id: I3903ffa5f6ba33a5c0d761602ade6290c6752596
(cherry picked from commit 62e0bc7586)
2017-04-12 22:46:09 -07:00
Tianjie Xu 41bdd91780 Merge "Protect filename_cache with lock in ota fault" am: 1b28a27c33
am: 461188865b

Change-Id: I07ff3c134ebca9738a7f7d725ec1c39941047944
2017-04-11 05:19:05 +00:00
Tianjie Xu 461188865b Merge "Protect filename_cache with lock in ota fault"
am: 1b28a27c33

Change-Id: Ie5ed472ddb83f4101b54e74d74a550a0cc5237da
2017-04-11 05:14:04 +00:00
Tianjie Xu 1b28a27c33 Merge "Protect filename_cache with lock in ota fault" 2017-04-11 05:08:05 +00:00
Tianjie Xu 4bb11c745b Protect filename_cache with lock in ota fault
Bug: 33173924
Test: Apply a successfully update on bullhead
Change-Id: I28cc356e216a3e957b5533c338ee6bc3c0920222
2017-04-10 16:21:09 -07:00
Tianjie Xu 955c5ebece Merge "Abort the update if there's not enough new data" am: b4b0c49c48
am: bc66528cb9

Change-Id: If62e8d2ea8740efb81adfa609ec1544b7563ba4c
2017-04-10 18:29:31 +00:00
Tianjie Xu bc66528cb9 Merge "Abort the update if there's not enough new data"
am: b4b0c49c48

Change-Id: Id2eece5eabd369e0de5b06fc3d5a953a78ef563f
2017-04-10 18:24:24 +00:00
Tianjie Xu b4b0c49c48 Merge "Abort the update if there's not enough new data" 2017-04-10 18:12:09 +00:00
Tianjie Xu 3a8d98dd90 Abort the update if there's not enough new data
Right now the update stuck in a deadlock if there's less new data than
expection. Add some checkers and abort the update if such case happens.
Also add a corresponding test.

Bug: 36787146
Test: update aborts correctly on bullhead && recovery_component_test passes
Change-Id: I914e4a2a4cf157b99ef2fc65bd21c6981e38ca47
2017-04-07 17:19:46 -07:00
Tao Bao f25cd871cc Merge "tests: Use get_bootloader_message_blk_device() to find /misc." am: 3cd630a5a8
am: cc630bdde1

Change-Id: Ib6a8a360e1854096c4d77bcbc99ea7e2dc18d5de
2017-04-05 15:48:35 +00:00
Tao Bao cc630bdde1 Merge "tests: Use get_bootloader_message_blk_device() to find /misc."
am: 3cd630a5a8

Change-Id: Ia5b13eef57e82407e0043579267f1c809fee692a
2017-04-05 15:46:05 +00:00
Tao Bao 3cd630a5a8 Merge "tests: Use get_bootloader_message_blk_device() to find /misc." 2017-04-05 15:40:59 +00:00
Tao Bao ad87d9dc78 tests: Use get_bootloader_message_blk_device() to find /misc.
Since commit fb00d82f32 has added
get_bootloader_message_blk_device() as an API, switch the tests-local
implementation to it.

Test: recovery_component_test on angler.
Test: recovery_component_test on a local build that doesn't have /misc.
Change-Id: I4f5f542cb9ef58292c587a677da73d8822db7262
2017-04-04 20:35:10 -07:00
Alex Deymo c14d0728a7 Merge "Boot control HAL based on the A/B headers." am: b5fca37976
am: df141b9381

Change-Id: I5e16931621728122fc265d8e6c1c904227de2385
2017-04-04 23:24:02 +00:00
Alex Deymo df141b9381 Merge "Boot control HAL based on the A/B headers."
am: b5fca37976

Change-Id: I6ede3c9c4b0f173baa40bb061ce01ecc6f77b73e
2017-04-04 23:21:33 +00:00
Alex Deymo b5fca37976 Merge "Boot control HAL based on the A/B headers." 2017-04-04 23:14:30 +00:00
Tao Bao 7f4e5d55f4 Merge "Change the internal representation in RangeSet." am: 7ffa8be41d
am: 2e12242b7a

Change-Id: I126ee51f8c346a72f64fc270f1ac2e38caa5a8d8
2017-04-04 21:52:26 +00:00
Tao Bao 2e12242b7a Merge "Change the internal representation in RangeSet."
am: 7ffa8be41d

Change-Id: Ic7e82fd8b60f93fb5db4f0029d5f63507080b538
2017-04-04 21:48:56 +00:00
Tao Bao 7ffa8be41d Merge "Change the internal representation in RangeSet." 2017-04-04 21:44:27 +00:00
Tom Cherry bec8264c6f Merge "update_verifier: correct group in rc file" am: 310fa65c02
am: 2717c28e77

Change-Id: I1f4f5330857098875addea53875f045003459b33
2017-04-04 01:15:54 +00:00
Tom Cherry 2717c28e77 Merge "update_verifier: correct group in rc file"
am: 310fa65c02

Change-Id: I66e145f77ab1543f91a2b666f6bd4f4287b61292
2017-04-04 01:11:54 +00:00
Treehugger Robot 310fa65c02 Merge "update_verifier: correct group in rc file" 2017-04-04 01:06:21 +00:00
Tom Cherry 3a8002f8c0 update_verifier: correct group in rc file
update_verifier should be in the cache group, not 'class'.

Also use PLOG instead of LOG if care_map.txt cannot be opened.

Bug: 36818743
Test: boot sailfish
Test: fake OTA on sailfish and verify update_verifier reads care_package
Change-Id: I0ec844cac5ef5c63b18ebee90160854fd84ee829
2017-04-03 16:31:16 -07:00
Wei Wang 8ed4fd4b69 Merge "update_verifier: tweak priority of update_verifier for quick boot" am: a6ea26987d
am: 56e9b9cc26

Change-Id: Id664f6e38c53ada64365e7ce296de2a2832d179b
2017-04-03 23:26:47 +00:00
Wei Wang 56e9b9cc26 Merge "update_verifier: tweak priority of update_verifier for quick boot"
am: a6ea26987d

Change-Id: I19d4e2680f731d78a22f595a049cb079f1531516
2017-04-03 23:22:47 +00:00
Treehugger Robot a6ea26987d Merge "update_verifier: tweak priority of update_verifier for quick boot" 2017-04-03 23:15:52 +00:00
Wei Wang a015cd1d7a update_verifier: tweak priority of update_verifier for quick boot
Highest ioprio is 0 for CFQ and we should run update_verifier with that.
Tested on device and showing boottime decreased.

Bug: 36511808
Bug: 36102163
Test: Boot marlin
Change-Id: Iddd925951d976e21014b61e5590bcdae3cea8470
2017-04-03 13:53:49 -07:00
Alex Deymo fb00d82f32 Boot control HAL based on the A/B headers.
The added bootctrl.bcb module implement the legacy interface for the
bootctrl HAL based on the Boot Control Block (BCB) and the headers
already specified in the booloader_message library.

This serves as a reference implementation of the boot_control HAL.

Bug: 32707546
Test: Tested internally that a device can use this HAL to flip slots and
recovery from a /misc wipe.

Change-Id: Ic02e5aaf4de7d0a1780eac4e8705dae20d0b3e10
2017-04-03 11:25:33 -07:00
Tao Bao 0f72cf5403 Merge "applypatch: Remove duplicate test files." am: b6609f8895
am: 1f38a9b96e

Change-Id: I07005e37314f65775da6e9d6178652c624fc6379
2017-04-03 16:27:00 +00:00
Tao Bao 78e277cd42 Merge "updater: Keep the parsed parameters in std::unique_ptr." am: c80dd4ade2
am: a982e53a6e

Change-Id: Ib17659287aed12399b226236144d1f1561b05815
2017-04-03 16:26:50 +00:00
Tao Bao 1f38a9b96e Merge "applypatch: Remove duplicate test files."
am: b6609f8895

Change-Id: I725317517485f5332cf4ebd326deb027bfc397e8
2017-04-03 16:23:31 +00:00
Tao Bao a982e53a6e Merge "updater: Keep the parsed parameters in std::unique_ptr."
am: c80dd4ade2

Change-Id: I1387f9134a9bfeada23120b64544cdd7630f25e1
2017-04-03 16:23:20 +00:00
Tao Bao bf5b77dbf7 Change the internal representation in RangeSet.
This CL makes the following changes to RangeSet:
 - Uses std::pair<size_t, size_t> to represent a Range;
 - Uses std::vector<Range> to represent a RangeSet;
 - Provides const iterators (forward and reverse);
 - Provides const accessor;
 - 'blocks()' returns the number of blocks (formerly 'size');
 - 'size()' returns the number of Range's (formerly 'count').

Test: recovery_unit_test
Test: Apply an incremental update with the new updater.
Change-Id: Ia1fbb343370a152e1f7aa050cf914c2da09b1396
2017-04-03 09:22:48 -07:00
Tao Bao b6609f8895 Merge "applypatch: Remove duplicate test files." 2017-04-03 16:18:37 +00:00