aboutsummaryrefslogtreecommitdiffstats
path: root/applypatch
Commit message (Collapse)AuthorAgeFilesLines
* applypatch: Use static libs for libbrotli and libbz.Tao Bao2019-12-111-2/+4
| | | | | | | | | | | | | | | | | | | | Prior to this CL, applypatch was the only user of libbrotli.so and libbz.so (update_engine and puffin have been using the static versions). This CL switches applypatch to their static versions to save space in /system. Sizes prior to the change (aosp_taimen-userdebug): /system/bin/applypatch 91296 /system/lib64/libbrotli.so 688536 /system/lib64/libbz.so 79560 After: /system/bin/applypatch 272368 Test: `m dist` Test: Check the built blueline-userdebug target. libbrotli.so and libbz.so are not installed. Change-Id: I08422a0d5a287bbac69aa9f6cfd9c97e5b2e9078
* Fix bogus error checking on unique_fdBernie Innocenti2019-03-281-1/+1
| | | | | | | | | The expression "!fd" calls the implicit conversion to int, but comparing the raw fd against 0 does not work, since open() and other POSIX calls returning a file descriptor use -1 to signal an error. Test: m recovery Change-Id: I0847c276f39cb9dd09c7ffb96951276113418fc8
* applypatch: Fix comparison of integers of different signs.Tao Bao2018-12-172-5/+13
| | | | | | | | | | | | | | | | | | | | bootable/recovery/applypatch/imgpatch.cpp:57:3: error: comparison of integers of different signs: 'unsigned int' and 'int' [-Werror,-Wsign-compare] CHECK_GT(expected_target_length, 0); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ bootable/recovery/applypatch/freecache.cpp:145:50: error: comparison of integers of different signs: 'long' and '__fsblkcnt64_t' (aka 'unsigned long') [-Werror,-Wsign-compare] if (sf.f_bsize == 0 || free_space / sf.f_bsize != sf.f_bavail) { ~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~ bootable/recovery/applypatch/freecache.cpp:190:16: error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare] if (free_now >= bytes_needed) { ~~~~~~~~ ^ ~~~~~~~~~~~~ bootable/recovery/applypatch/freecache.cpp:233:18: error: comparison of integers of different signs: 'int64_t' (aka 'long') and 'size_t' (aka 'unsigned long') [-Werror,-Wsign-compare] if (free_now >= bytes_needed) { ~~~~~~~~ ^ ~~~~~~~~~~~~ Test: `mmma -j bootable/recovery/applypatch` with -Wsign-compare Test: Run recovery_unit_test on marlin. Change-Id: I4aa1fd0f9b7205b9e4e50874fc4bccb62951e7fe
* applypatch: {Load,Save}FileContents return bool values.Tao Bao2018-08-312-18/+17
| | | | | | Bug: 110106408 Test: Run recovery_unit_test and recovery_component_test on marlin. Change-Id: Id72e24dd00eb451565d90cff6e049f4f4b844ea2
* applypatch: Refactor applypatch().Tao Bao2018-08-314-347/+238
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | applypatch() was initially designed for file-based OTA, operating on individual files. It was later extended to allow patching eMMC targets as a whole, in favor of block-based updates. As we have deprecated file-based OTA since Oreo, part of the code in applypatch() has become obsolete. This CL refactors the related functions, by removing the obsolete logic and focusing on eMMC targets. Since this CL substantially changes applypatch APIs, it adds new functions to avoid unintentionally mixing them together. In particular, it removes `applypatch()`, `applypatch_check()`, `applypatch_flash()`, and adds `PatchPartition()`, `PatchPartitionCheck()`, `FlashPartition()` and `CheckPartition()`. It also replaces the old Edify functions `apply_patch()` and `apply_patch_check()` with `patch_partition()` and `patch_partition_check()` respectively. This CL requires matching changes to OTA generation script (in the same topic). Bug: 110106408 Test: Run recovery_unit_test and recovery_component_test on marlin. Test: `m dist` with non-A/B target. Verify /system/bin/install-recovery.sh on device. Test: `m dist` with non-A/B target using BOARD_USES_FULL_RECOVERY_IMAGE. Verify /system/bin/install-recovery.sh on device. Test: Install an incremental OTA with the new updater and scripts. Change-Id: Ia34a90114bb227f4216eb478c22dc98c8194cb7f
* Remove otafaultTianjie Xu2018-08-272-106/+46
| | | | | | | | | | Now it's less beneficial to inject I/O faults since we don't see many of them. Remove the library that mocks I/O failures. And switch to android::base I/O when possible. Bug: 113032079 Test: unit tests pass Change-Id: I9f2a92b7ba80f4da6ff9e2abc27f2680138f942c
* applypatch: Change applypatch command-line arguments.Tao Bao2018-07-205-147/+145
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This applies to the standalone applypatch executable (/system/bin/applypatch on device). This executable is only used when installing (via patching or flashing) a recovery image on non-A/B device. This CL removes the support for patching non-eMMC targets from applypatch that has been deprecated as part of file-based OTA. For patching eMMC targets, it also drops the support for accepting multiple patches (not useful, since the source file must be fixed). This CL needs the matching change in the same topic, which writes the script of "/system/bin/install-recovery.sh". Note that this CL doesn't chanage the applypatch API signatures, in order to minimize the CL size. *BEFORE* usage: /system/bin/applypatch [-b <bonus-file>] <src-file> <tgt-file> <tgt-sha1> <tgt-size> [<src-sha1>:<patch> ...] or /system/bin/applypatch -c <file> [<sha1> ...] or /system/bin/applypatch -l Filenames may be of the form EMMC:<partition>:<len_1>:<sha1_1>:<len_2>:<sha1_2>:... to specify reading from or writing to an EMMC partition. *AFTER* Usage: check mode applypatch --check EMMC:<target-file>:<target-size>:<target-sha1> flash mode applypatch --flash <source-file> --target EMMC:<target-file>:<target-size>:<target-sha1> patch mode applypatch [--bonus <bonus-file>] --patch <patch-file> --target EMMC:<target-file>:<target-size>:<target-sha1> --source EMMC:<source-file>:<source-size>:<source-sha1> show license applypatch --license Bug: 110106408 Test: Run recovery_component_test and recovery_unit_test on marlin. Test: Build a non-A/B target that has /system/bin/install-recovery.sh. Verify that it installs recovery image successfully. Test: Build a non-A/B target that has /system/bin/install-recovery.sh in flashing mode. Verify that it installs recovery image successfully. Change-Id: I71f9a71fb457e6f663e0b5511946949e65b4b78c
* applypatch: Consolidate CacheSizeCheck() and MakeFreeSpaceOnCache().Tao Bao2018-07-133-21/+12
| | | | | | | | | | | | | | | | | | They are doing exactly the same thing, except for the slightly different error return value (1 vs -1). int CacheSizeCheck(size_t bytes); int MakeFreeSpaceOnCache(size_t bytes_needed); This CL consolidates the two functions and uses bool as its return type. // Checks whether /cache partition has at least 'bytes'-byte free space. Returns true immediately // if so. Otherwise, it will try to free some space by removing older logs, checks again and // returns the checking result. bool CheckAndFreeSpaceOnCache(size_t bytes); Test: Run recovery_unit_test and recovery_component_test on marlin. Change-Id: I94a96934d2b18713f8f39ad5aa96a02c98d87963
* applypatch: Fix the return type of FreeSpaceForFile().Tao Bao2018-07-123-19/+33
| | | | | | | | | | | | | | Prior to this CL, FreeSpaceForFile() was returning `size_t`, which may overflow on ILP32 when called on a partition with 4GiB+ free space. Additionally, it was returning static_cast<size_t>(-1) on error, but the caller in freecache.cpp didn't check for that. This CL changes its return type to `int64_t`, and moves the function into freecache.cpp since there's no external caller. Test: Run recovery_unit_test on marlin. Test: Code search shows no external user of FreeSpaceForFile(). Change-Id: I00f501a057726e1f1ab69f367c46c77b30f2d774
* applypatch: Switch freecache.cpp to libbase logging.Tao Bao2018-07-111-21/+17
| | | | | | Test: mmma -j bootable/recovery Test: Run recovery_unit_test on marlin. Change-Id: Iaa326cd26211d527071cc64a928e59a96271b111
* Remove the debug code for bspatch flakinessTianjie Xu2018-07-112-32/+2
| | | | | | | | | We already know the flakiness happens in bspatch, and the issue is tracked in b/80193170. Bug: 67849209 Test: unit tests pass Change-Id: Ib4772b8f2f0225125096fe7407d083b5bb542cfb
* edify: Remove VAL_INVALID and move ValueType into Value class.Tao Bao2018-07-093-47/+46
| | | | | | Test: mmma -j bootable/recovery Test: Run recovery_component_test and recovery_unit_test on marlin. Change-Id: I4b240e3e771c387b9694be9c0f2f74e0265ab4cb
* Merge "applypatch: Restrict applypatch_check to eMMC targets."Tao Bao2018-07-102-13/+16
|\
| * applypatch: Restrict applypatch_check to eMMC targets.Tao Bao2018-07-092-13/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also fix an error-pone behavior in previous code when verifying an eMMC target. As long as it loads the partition content successfully according to the SHAs embedded in the filename, it shouldn't further check against the SHAs given in the second argument. Because the loaded contents relate to a specific partition size. For example: apply_patch_check( "EMMC:/boot.img:src_size:src_hash:tgt_size:tgt_hash", "src_hash"); Assume "/boot.img" already has the desired hash of "tgt_hash", the previous code would give wrong verification result. The issue can be addressed by additionally listing "tgt_hash" as one of the desired SHAs (or by applying this CL). Bug: 110106408 Test: Run recovery_unit_test and recovery_component_test on marlin. Change-Id: I8daafdbecd083f687e24d563ab089caa25667633
* | applypatch: Fix a potential nullptr dereferencing.Tao Bao2018-07-091-4/+7
|/ | | | | | | | Note that the code exists in debugging path only, and won't be hit unless device has flaky flash. Test: Run recovery_unit_test and recovery_component_test on marlin. Change-Id: I0c71adc271f08f00e3eabd9d14cd8af3186c5bae
* applypatch: {Load,Save}FileContents and ParseSha1 take std::string.Tao Bao2018-06-203-17/+18
| | | | | | Test: mmma -j bootable/recovery Test: Run recovery_component_test on marlin. Change-Id: Ifcf244346a88dac833d91b169a4c2aee1fe677f1
* applypatch: Move to libbase logging.Tao Bao2018-06-202-113/+118
| | | | | | Test: mmma -j bootable/recovery Test: Run recovery_component_test on marlin. Change-Id: I3a4e32eb2c1e231c6690a50571edc66341b8d50a
* applypatch: Clean up the function comments.Tao Bao2018-06-192-116/+105
| | | | | | | | | | Also two minor changes (other than renaming some parameters): - Added constness to the first parameter of FindMatchingPatch(); - Declared WriteToPartition() as static. Bug: 110106408 Test: mmma -j bootable/recovery Change-Id: I388958c944a23ce4a38a757ce2249f6a89dd4f03
* Convert deflate image chunks to raw if the raw data is smallerTianjie Xu2018-05-243-3/+5
| | | | | | | | | | | | | | | | | The imgpatch will fail on empty deflates because the bspatch won't call the sink function if the target length is zero. Instead of compressing an empty string, it's cleaner to not generate such empty deflate chunks in the patch. Therefore, we can just convert the chunk type to raw if the target length is smaller than the patch data. Also adjust some unit tests and add the testdata gzipped_source & gzipped_target. These two files are ~1K each and are generated by gzipping two slightly different regular files. Bug: 79265132 Test: unit tests pass, imgpatch applys successfully on the given src/tgt Change-Id: I6bfff3251918137f6762a6f9e9551642371a1124
* Save the target file when applypatch tests failTianjie Xu2018-04-262-14/+18
| | | | | | | | | | | | | Save the target file to tempfile upon unittest failures so that we can try to decompress the deflate chunks in the flaky unittests. And print the zlib version in case that gets changed. Also the SHA1 of the uncompressed data seems correct; so only keep the final SHA1 to double confirm. Bug: 67849209 Test: recovery_component_test Change-Id: Ic6447c2b75c29379d6844cd23a0ff1c4305694a0
* Merge "Dump the uncompressed data's SHA1 to debug flaky tests"Tianjie Xu2018-04-261-1/+23
|\
| * Dump the uncompressed data's SHA1 to debug flaky testsTianjie Xu2018-04-251-1/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Dump the SHA1 of the uncompressed data in applypatch to confirm if we are at least doing the bspatch part correctly. (I expect so since the actual length of the uncompressed data matches the expected length). Also try to decompress the deflate chunk inside the recovery image for these two flacky tests. In theory, there shouldn't be randomness in zlib; so we would know if we process the data wrongly if the deflate fails to decompress. Bug: 67849209 Test: recovery_component_test Change-Id: Id947522153b1eeb0d10d161298a96fb045f92018
* | Rename CacheLocation to Paths.Tao Bao2018-04-252-9/+9
|/ | | | | | | | | | We have a general need for overriding more paths (e.g. "/tmp"), mostly for testing purpose. Rename CacheLocation to Paths, and use that to manage TEMPORARY_{INSTALL,LOG}_FILE. Test: mmma -j bootable/recovery Test: recovery_component_test Change-Id: Ia8ce8e5695df37ca434f13ac4d3206de1e8e9396
* Dump debug information for apply_patch unit testsTianjie Xu2018-04-242-0/+10
| | | | | | | | | | | | | The apply patch test should have a deterministic way to append patch data. Add debug logs to dump the length and SHA1 of each step to further track down the flakiness. Also redirect the debug logging to stdout in case the logcat becomes too chatty. Bug: 67849209 Test: Run recovery_component_test Change-Id: I42bafef2d9dee599719ae57840b3d8c00d243ebd
* applypatch: Drop the SHA_CTX parameter in Apply{BSDiff,Image}Patch.Tao Bao2018-04-204-34/+22
| | | | | | | | | | As they're accepting the SinkFn callback, it makes more sense to leave the work to their callers. Test: mmma -j bootable/recovery Test: Run recovery_component_test on marlin. Test: No other active user of the two functions. Change-Id: I8d67b38ce037925442296f136b483e0c71983777
* applypatch: Dump patch info on mismatching patching result.Tao Bao2018-04-191-1/+16
| | | | | | | | | | | | After splitting the previously flaky ApplyPatchModesTest#PatchModeEmmcTarget tests, PatchModeEmmcTargetWithMultiplePatches now becomes the sole victim. This CL dumps additional info to narrow down the cause. Bug: 67849209 Test: `recovery_component_test` on marlin. Test: It dumps additional info after using corrupt bonus.file. Change-Id: Ic5436de457cc882a51d03f49d5cee70077f7d3df
* Remove the old log files if cache space is insufficient for OTATianjie Xu2018-04-133-59/+129
| | | | | | | | | | | We set the limit of the max stash size to 80% of cache size. But the cache space can still be insufficient for the update if the log files occupy a large chunk of /cache. So remove the old logs for now to make room for the update. Bug: 77528881 Test: unit tests pass Change-Id: Ia8bcb0ace11f8164ad9290bfb360e08e31d282cb
* Add a singleton CacheLocation to replace the hard coded locationsTianjie Xu2018-02-283-13/+7
| | | | | | | | | | | | This class allows us to set the following locations dynamically: cache_temp_source, last_command_file, stash_directory_base. In the updater's main function, we reset the values of these variables to their default locations in /cache; while we can set them to temp files in unit tests or host simulation. Test: unit tests pass Change-Id: I528652650caa41373617ab055d41b1f1a4ec0f87
* Remove the assumption of target chunk size in imgdiffTianjie Xu2018-02-232-20/+30
| | | | | | | | | | | | | | | | In the split mode of imgdiff, we used to assume that the size of a split target chunk is always greater than the blocksize i.e. 4096. This may lead to the following assertion failure: I0221 04:57:33.451323 818464 common.py:205 imgdiff F 02-21 04:57:33 821203 821203 imgdiff.cpp:999] Check failed: tgt_size >= BLOCK_SIZE (tgt_size=476, BLOCK_SIZE=4096) This CL removes the assumption and handles the edge cases. Test: generate and verify the incremental update for TFs in the bug; unit test passes Bug: 73757557 Bug: 73711365 Change-Id: Iadbb4ee658995f5856cd488f3793980881a59620
* Disable building libapplypatch on macTianjie Xu2018-02-171-0/+6
| | | | | | | | | | The sdk_mac on build server fails with the error: bootable/recovery/applypatch/freecache.cpp:23:10: fatal error: 'sys/statfs.h' file not found So we will disable libapplypatch on mac. Test: the library still builds on linux; and check the other host targets in the same cl. Change-Id: Ie4a30708726e51c810f7ad7f1085d38154076cca
* Skip the cache size check on hostTianjie Xu2018-02-123-3/+10
| | | | | | | | | | | When running the update simulation, we choose to skip the cache size check for now due to the lack of "/cache" on host. And in later cls we can implement a cache size estimator to make the check more constrained. Also build the host version of support libraries. Test: unit test pass Change-Id: I3ed93c857fd02f7b62f5baba9130f75c3236e717
* applypatch: Remove the 'st' field from FileContents.Tao Bao2017-12-072-17/+3
| | | | | | | | It used to keep track of the stat(2) info (e.g. st_mode/st_gid/st_uid) while patching a file in file-based OTA. Test: Build and use the new updater to apply an update on bullhead. Change-Id: Ibf8f0f4b14298a9489bf24a2678bb279c5d9c8f3
* Merge "Add libbrotli as a dependency when building applypatch binary"Tianjie Xu2017-11-171-0/+1
|\
| * Add libbrotli as a dependency when building applypatch binaryTianjie Xu2017-11-031-0/+1
| | | | | | | | | | | | | | | | libbrotli is now used in libbspatch. Bug: 34220646 Test: mma Change-Id: I8d3527141539ffdae112d9042355fd705caeb250
* | Switch imgdiff to libbase loggingTianjie Xu2017-11-152-97/+109
| | | | | | | | | | | | | | | | Also add a verbose option. And we won't print messages of 'info' severity unless '-v' is present. Test: run imgdiff and check the logs. Change-Id: I1b90874baea8e72e2a2323a0b63bc5d35e653e6b
* | Merge "applypatch: Change the patch parameter to const Value& in ↵Tao Bao2017-11-114-45/+47
|\ \ | | | | | | | | | Apply{BSDiff,Image}Patch."
| * | applypatch: Change the patch parameter to const Value& in ↵Tao Bao2017-11-104-45/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | Include bspatch.h from bsdiff/Alex Deymo2017-11-081-1/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | 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
* / Switch to bionic gtest in bootable/recoveryTianjie Xu2017-11-033-19/+17
|/ | | | | | | | | | | | | | | | | 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
* Add libbrotli as a dependency for libbsdiffTianjie Xu2017-11-011-0/+1
| | | | | | Bug: 34220646 Test: mma Change-Id: If00285943fff8226f1bc7239db5570a277739904
* Merge "applypatch: Fix a memory leak in ApplyImagePatch()."Treehugger Robot2017-10-241-17/+22
|\
| * applypatch: Fix a memory leak in ApplyImagePatch().Tao Bao2017-10-241-17/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | $ valgrind --leak-check=full out/host/linux-x86/nativetest64/recovery_host_test/recovery_host_test ==36755== 112 bytes in 1 blocks are definitely lost in loss record 4 of 16 ==36755== at 0x40307C4: malloc (valgrind/coregrind/m_replacemalloc/vg_replace_malloc.c:270) ==36755== by 0x40C1669: operator new(unsigned long) (external/libcxxabi/src/cxa_new_delete.cpp:46) ==36755== by 0x18D6A8: ApplyImagePatch(unsigned char const*, unsigned long, Value const*, std::__1::function<unsigned long (unsigned char const*, unsigned long)>, sha_state_st*, Value const*) (bootable/recovery/applypatch/imgpatch.cpp:62) ==36755== by 0x18D02B: ApplyImagePatch(unsigned char const*, unsigned long, unsigned char const*, unsigned long, std::__1::function<unsigned long (unsigned char const*, unsigned long)>) (bootable/recovery/applypatch/imgpatch.cpp:134) ==36755== by 0x160D15: GenerateTarget(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) (bootable/recovery/tests/component/imgdiff_test.cpp:85) ==36755== by 0x11FA7D: verify_patched_image(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) (bootable/recovery/tests/component/imgdiff_test.cpp:96) ==36755== by 0x12966C: ImgdiffTest_zip_mode_smoke_trailer_zeros_Test::TestBody() (bootable/recovery/tests/component/imgdiff_test.cpp:295) ==36755== by 0x235EF9: testing::Test::Run() (external/googletest/googletest/src/gtest.cc:2455) ==36755== by 0x236CBF: testing::TestInfo::Run() (external/googletest/googletest/src/gtest.cc:2653) ==36755== by 0x2372D6: testing::TestCase::Run() (external/googletest/googletest/src/gtest.cc:2771) ==36755== by 0x23EEE6: testing::internal::UnitTestImpl::RunAllTests() (external/googletest/googletest/src/gtest.cc:4648) ==36755== by 0x23EB45: testing::UnitTest::Run() (external/googletest/googletest/src/gtest.cc:2455) std::unique_ptr<z_stream, decltype(&deflateEnd)> strm(new z_stream(), deflateEnd); Only the internally allocated buffers inside 'strm' would be free'd by deflateEnd(), but not 'strm' itself. This CL fixes the issue by moving 'strm' to stack variable. Note that we only need to call deflateEnd() on successful return of deflateInit2(). Test: recovery_host_test && recovery_component_test Change-Id: I39b9bdf62376b8029f95cab82c8542bfcb874009
* | Merge "Use SuffixArrayIndexInterface opaque type instead of the underlying ↵Treehugger Robot2017-10-242-7/+10
|\ \ | |/ |/| | | data pointer."
| * Use SuffixArrayIndexInterface opaque type instead of the underlying data ↵Alex Deymo2017-10-242-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | pointer. bsdiff interface is changing such that it hides the suffix array pointer from the public interface. This allows to use a different suffix array data size depending on the input size, running much faster in the normal case. Bug: 34220646 Test: `make checkbuild`; Ran an incremental update generation on a non-A/B device. Change-Id: I78e766da56cf28bc7774b8c8e58527bc11d919fb
* | otautil: Move RangeSet implementation into rangeset.cpp.Tao Bao2017-10-162-0/+3
| | | | | | | | | | | | | | | | | | | | | | Since it has grown much larger, users of the header shouldn't compile and carry their full copies. Also add missing header includes in imgdiff.cpp and imgdiff_test.cpp. Test: mmma bootable/recovery Test: recovery_unit_test; recovery_component_test; recovery_host_test Change-Id: I88ca54171765e5606ab0d61580fbc1ada578fd7d
* | Merge "applypatch: Move to Soong."Tao Bao2017-10-122-196/+195
|\ \
| * | applypatch: Move to Soong.Tao Bao2017-10-112-196/+195
| | | | | | | | | | | | | | | Test: mmma bootable/recovery Change-Id: Ie163aff1c4c2b3b15bb705825779ada6bc38ad67
* | | applypatch: Remove the Makefile for building imgdiff in Chrome OS.Tao Bao2017-10-112-39/+0
|/ / | | | | | | | | | | | | | | The former user system/update_engine has dropped the support for imgdiff (https://android-review.googlesource.com/c/platform/system/update_engine/+/400427/). Test: N/A Change-Id: Ia8f770dc51800b45064c4affc3514cf513877edc
* | applypatch: Use shared lib for libbz.Tao Bao2017-10-111-2/+2
| | | | | | | | | | | | | | | | We have shared lib target for libbz now (and libbz.so is already on device because of /system/bin/bzip2). Test: m applypatch Change-Id: I5fe2468a8d535840245f081a92d436240dddbf6b
* | Merge "applypatch: Use shared libs for libbase/libcrypto/liblog/libziparchive."Tao Bao2017-10-111-5/+3
|\ \