summaryrefslogtreecommitdiffstats
path: root/recovery.cpp
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2019-06-12 00:43:43 +0200
committerTianjie Xu <xunchang@google.com>2019-06-13 22:36:56 +0200
commit980f92ec008738b4d54208ed0fe9bd9cede4d7e1 (patch)
tree60386946c664bf958ec9ed2dc501e5eb68b6b6e7 /recovery.cpp
parentMerge "minadbd: Support `adb rescue getprop`." (diff)
downloadandroid_bootable_recovery-980f92ec008738b4d54208ed0fe9bd9cede4d7e1.tar
android_bootable_recovery-980f92ec008738b4d54208ed0fe9bd9cede4d7e1.tar.gz
android_bootable_recovery-980f92ec008738b4d54208ed0fe9bd9cede4d7e1.tar.bz2
android_bootable_recovery-980f92ec008738b4d54208ed0fe9bd9cede4d7e1.tar.lz
android_bootable_recovery-980f92ec008738b4d54208ed0fe9bd9cede4d7e1.tar.xz
android_bootable_recovery-980f92ec008738b4d54208ed0fe9bd9cede4d7e1.tar.zst
android_bootable_recovery-980f92ec008738b4d54208ed0fe9bd9cede4d7e1.zip
Diffstat (limited to 'recovery.cpp')
-rw-r--r--recovery.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/recovery.cpp b/recovery.cpp
index eb0c2b216..db66ea7e9 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -732,7 +732,15 @@ Device::BuiltinAction start_recovery(Device* device, const std::vector<std::stri
set_retry_bootloader_message(retry_count + 1, args);
}
- status = InstallPackage(update_package, should_wipe_cache, true, retry_count, ui);
+ if (update_package[0] == '@') {
+ ensure_path_mounted(update_package + 1);
+ } else {
+ ensure_path_mounted(update_package);
+ }
+ // TODO(xunchang) install package from fuse for large packages on ILP32 builds.
+ auto package = Package::CreateMemoryPackage(
+ update_package, std::bind(&RecoveryUI::SetProgress, ui, std::placeholders::_1));
+ status = InstallPackage(package.get(), update_package, should_wipe_cache, retry_count, ui);
if (status != INSTALL_SUCCESS) {
ui->Print("Installation aborted.\n");