summaryrefslogtreecommitdiffstats
path: root/updater
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2017-05-24 20:48:04 +0200
committerandroid-build-merger <android-build-merger@google.com>2017-05-24 20:48:04 +0200
commit66f02b4e7100b70520afc58884214a50ee82a395 (patch)
tree6ccc20bb5be3a08af14e1c56dbf332decb6eafe2 /updater
parentMerge "Print SHA1 of the patch if bsdiff fails with data error" (diff)
parentMerge "Retry the update if ApplyBSDiffPatch | ApplyImagePatch fails" (diff)
downloadandroid_bootable_recovery-66f02b4e7100b70520afc58884214a50ee82a395.tar
android_bootable_recovery-66f02b4e7100b70520afc58884214a50ee82a395.tar.gz
android_bootable_recovery-66f02b4e7100b70520afc58884214a50ee82a395.tar.bz2
android_bootable_recovery-66f02b4e7100b70520afc58884214a50ee82a395.tar.lz
android_bootable_recovery-66f02b4e7100b70520afc58884214a50ee82a395.tar.xz
android_bootable_recovery-66f02b4e7100b70520afc58884214a50ee82a395.tar.zst
android_bootable_recovery-66f02b4e7100b70520afc58884214a50ee82a395.zip
Diffstat (limited to 'updater')
-rw-r--r--updater/blockimg.cpp2
-rw-r--r--updater/updater.cpp4
2 files changed, 6 insertions, 0 deletions
diff --git a/updater/blockimg.cpp b/updater/blockimg.cpp
index d5c170473..df366b0b8 100644
--- a/updater/blockimg.cpp
+++ b/updater/blockimg.cpp
@@ -1213,6 +1213,7 @@ static int PerformCommandDiff(CommandParameters& params) {
std::placeholders::_2),
nullptr, nullptr) != 0) {
LOG(ERROR) << "Failed to apply image patch.";
+ failure_type = kPatchApplicationFailure;
return -1;
}
} else {
@@ -1221,6 +1222,7 @@ static int PerformCommandDiff(CommandParameters& params) {
std::placeholders::_2),
nullptr) != 0) {
LOG(ERROR) << "Failed to apply bsdiff patch.";
+ failure_type = kPatchApplicationFailure;
return -1;
}
}
diff --git a/updater/updater.cpp b/updater/updater.cpp
index 1be8b6040..f5ff6df91 100644
--- a/updater/updater.cpp
+++ b/updater/updater.cpp
@@ -202,6 +202,10 @@ int main(int argc, char** argv) {
// Cause code should provide additional information about the abort.
if (state.cause_code != kNoCause) {
fprintf(cmd_pipe, "log cause: %d\n", state.cause_code);
+ if (state.cause_code == kPatchApplicationFailure) {
+ LOG(INFO) << "Patch application failed, retry update.";
+ fprintf(cmd_pipe, "retry_update\n");
+ }
}
if (updater_info.package_zip) {