From 368bd2abab25c637a657d1fe4cef6b2222b29e82 Mon Sep 17 00:00:00 2001 From: Kay Arnesen Date: Mon, 6 Jun 2016 22:16:14 +0200 Subject: Mount internal sdcard when updating from os Change-Id: Ib924fe17aef856963e69d4e3768ac37ac0362fd9 --- recovery.cpp | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/recovery.cpp b/recovery.cpp index 03425dc..0b59d12 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -1473,7 +1473,29 @@ main(int argc, char **argv) { } else #endif if (update_package != NULL) { - status = install_package(update_package, &should_wipe_cache, TEMPORARY_INSTALL_FILE, true); + std::vector volumes = vdc->getVolumes(); + std::vector::iterator vitr; + + for (vitr = volumes.begin(); vitr != volumes.end(); ++vitr) { + vdc->volumeMount(vitr->mId); + } + + void* token = start_sdcard_fuse(update_package); + + for (vitr = volumes.begin(); vitr != volumes.end(); ++vitr) { + vdc->volumeUnmount(vitr->mId, true); + } + + // check for sdcard path or normal path + if (token != NULL) { + status = install_package(FUSE_SIDELOAD_HOST_PATHNAME, &should_wipe_cache, + TEMPORARY_INSTALL_FILE, false); + finish_sdcard_fuse(token); + } else { + status = install_package(update_package, &should_wipe_cache, + TEMPORARY_INSTALL_FILE, true); + } + if (status == INSTALL_SUCCESS && should_wipe_cache) { wipe_cache(false, device); } -- cgit v1.1