diff options
author | Tao Bao <tbao@google.com> | 2018-07-13 13:11:09 -0700 |
---|---|---|
committer | Tao Bao <tbao@google.com> | 2018-07-20 11:26:17 -0700 |
commit | d34e6bc44b0e58a3261cd7070a1525099932f205 (patch) | |
tree | ff7098efd4f91f323189d3a0fdf248df724bcfc1 /applypatch/include | |
parent | 29932e7bcc2865494e4cf03248381475687d227b (diff) | |
download | android_bootable_recovery-d34e6bc44b0e58a3261cd7070a1525099932f205.tar.gz android_bootable_recovery-d34e6bc44b0e58a3261cd7070a1525099932f205.tar.bz2 android_bootable_recovery-d34e6bc44b0e58a3261cd7070a1525099932f205.zip |
applypatch: Change applypatch command-line arguments.
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
Diffstat (limited to 'applypatch/include')
-rw-r--r-- | applypatch/include/applypatch/applypatch.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/applypatch/include/applypatch/applypatch.h b/applypatch/include/applypatch/applypatch.h index 28dba7e6..cf65f3f2 100644 --- a/applypatch/include/applypatch/applypatch.h +++ b/applypatch/include/applypatch/applypatch.h @@ -75,10 +75,11 @@ int applypatch(const char* source_filename, const char* target_filename, // 'sha1s' to find a match on /cache if the hashes embedded in the filename fail to match. int applypatch_check(const std::string& filename, const std::vector<std::string>& sha1s); -// Flashes a given image to the target partition. It verifies the target cheksum first, and will -// return if target already has the desired hash. Otherwise it checks the checksum of the given -// source image before flashing, and verifies the target partition afterwards. The function is -// idempotent. Returns zero on success. +// Flashes a given image to the eMMC target partition. It verifies the target cheksum first, and +// will return if target already has the desired hash. Otherwise it checks the checksum of the +// given source image before flashing, and verifies the target partition afterwards. +// 'target_filename' must refer to an eMMC partition, of the form "EMMC:<device>:<size>:<hash>". +// The function is idempotent. Returns zero on success. int applypatch_flash(const char* source_filename, const char* target_filename, const char* target_sha1_str, size_t target_size); |