summaryrefslogtreecommitdiffstats
path: root/recovery.c
diff options
context:
space:
mode:
authorDoug Zongker <dougz@android.com>2010-09-22 05:00:18 +0200
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-09-22 05:00:18 +0200
commit2c3c5c15d15faf1c9fa074851c57d0afa2a40d28 (patch)
treeee7e6f6f3e148f3264befc46015085497c2a13e2 /recovery.c
parentuse fs_type "emmc" instead of "block" for consistency (do not merge) (diff)
parentmount sdcard only on demand; fix sideload installs (diff)
downloadandroid_bootable_recovery-2c3c5c15d15faf1c9fa074851c57d0afa2a40d28.tar
android_bootable_recovery-2c3c5c15d15faf1c9fa074851c57d0afa2a40d28.tar.gz
android_bootable_recovery-2c3c5c15d15faf1c9fa074851c57d0afa2a40d28.tar.bz2
android_bootable_recovery-2c3c5c15d15faf1c9fa074851c57d0afa2a40d28.tar.lz
android_bootable_recovery-2c3c5c15d15faf1c9fa074851c57d0afa2a40d28.tar.xz
android_bootable_recovery-2c3c5c15d15faf1c9fa074851c57d0afa2a40d28.tar.zst
android_bootable_recovery-2c3c5c15d15faf1c9fa074851c57d0afa2a40d28.zip
Diffstat (limited to 'recovery.c')
-rw-r--r--recovery.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/recovery.c b/recovery.c
index f5636d846..36da5f36a 100644
--- a/recovery.c
+++ b/recovery.c
@@ -456,6 +456,8 @@ static int compare_string(const void* a, const void* b) {
static int
sdcard_directory(const char* path) {
+ ensure_path_mounted(SDCARD_ROOT);
+
const char* MENU_HEADERS[] = { "Choose a package to install:",
path,
"",
@@ -465,6 +467,7 @@ sdcard_directory(const char* path) {
d = opendir(path);
if (d == NULL) {
LOGE("error opening %s: %s\n", path, strerror(errno));
+ ensure_path_unmounted(SDCARD_ROOT);
return 0;
}
@@ -546,11 +549,13 @@ sdcard_directory(const char* path) {
// the status to the caller.
char new_path[PATH_MAX];
strlcpy(new_path, path, PATH_MAX);
+ strlcat(new_path, "/", PATH_MAX);
strlcat(new_path, item, PATH_MAX);
ui_print("\n-- Install %s ...\n", path);
set_sdcard_update_bootloader_message();
char* copy = copy_sideloaded_package(new_path);
+ ensure_path_unmounted(SDCARD_ROOT);
if (copy) {
result = install_package(copy);
free(copy);
@@ -566,6 +571,7 @@ sdcard_directory(const char* path) {
free(zips);
free(headers);
+ ensure_path_unmounted(SDCARD_ROOT);
return result;
}
@@ -765,9 +771,6 @@ main(int argc, char **argv) {
if (status != INSTALL_SUCCESS) ui_set_background(BACKGROUND_ICON_ERROR);
if (status != INSTALL_SUCCESS || ui_text_visible()) {
- // Mount the sdcard when the menu is enabled so you can "adb
- // push" packages to the sdcard and immediately install them.
- ensure_path_mounted(SDCARD_ROOT);
prompt_and_wait();
}