From 2673cec07a4740f86438b50cfe1b70b258a9a8c8 Mon Sep 17 00:00:00 2001 From: Dees_Troy Date: Tue, 2 Apr 2013 20:22:16 +0000 Subject: Move all AOSP code out of recovery binary Improves license compatibility between GPL and Apache Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0 --- adb_install.cpp | 36 ++++++++++++++++-------------------- 1 file changed, 16 insertions(+), 20 deletions(-) (limited to 'adb_install.cpp') diff --git a/adb_install.cpp b/adb_install.cpp index f227bc024..c18126d00 100644 --- a/adb_install.cpp +++ b/adb_install.cpp @@ -24,17 +24,13 @@ #include #include #include +#include #include "ui.h" #include "cutils/properties.h" -#include "install.h" -#include "common.h" #include "adb_install.h" extern "C" { #include "minadbd/adb.h" -#include "twinstall.h" -#include "data.h" -int TWinstall_zip(const char* path, int* wipe_cache); } static RecoveryUI* ui = NULL; @@ -47,20 +43,20 @@ set_usb_driver(bool enabled) { It's not a critical error so we're disabling the error messages. ui->Print("failed to open driver control: %s\n", strerror(errno)); */ - LOGI("failed to open driver control: %s\n", strerror(errno)); + printf("failed to open driver control: %s\n", strerror(errno)); return; } if (write(fd, enabled ? "1" : "0", 1) < 0) { /* ui->Print("failed to set driver control: %s\n", strerror(errno)); */ - LOGI("failed to set driver control: %s\n", strerror(errno)); + printf("failed to set driver control: %s\n", strerror(errno)); } if (close(fd) < 0) { /* ui->Print("failed to close driver control: %s\n", strerror(errno)); */ - LOGI("failed to close driver control: %s\n", strerror(errno)); + printf("failed to close driver control: %s\n", strerror(errno)); } } @@ -76,28 +72,29 @@ maybe_restart_adbd() { char value[PROPERTY_VALUE_MAX+1]; int len = property_get("ro.debuggable", value, NULL); if (len == 1 && value[0] == '1') { - ui->Print("Restarting adbd...\n"); + printf("Restarting adbd...\n"); set_usb_driver(true); property_set("ctl.start", "adbd"); } } int -apply_from_adb(RecoveryUI* ui_, int* wipe_cache, const char* install_file) { - ui = ui_; +apply_from_adb(const char* install_file) { stop_adbd(); set_usb_driver(true); - +/* ui->Print("\n\nNow send the package you want to apply\n" "to the device with \"adb sideload \"...\n"); - +*/ pid_t child; if ((child = fork()) == 0) { execl("/sbin/recovery", "recovery", "--adbd", install_file, NULL); _exit(-1); } - DataManager_SetIntValue("tw_child_pid", child); + char child_prop[PROPERTY_VALUE_MAX]; + sprintf(child_prop, "%i", child); + property_set("tw_child_pid", child_prop); int status; // TODO(dougz): there should be a way to cancel waiting for a // package (by pushing some button combo on the device). For now @@ -105,20 +102,19 @@ apply_from_adb(RecoveryUI* ui_, int* wipe_cache, const char* install_file) { // package, like "/dev/null". waitpid(child, &status, 0); if (!WIFEXITED(status) || WEXITSTATUS(status) != 0) { - ui->Print("status %d\n", WEXITSTATUS(status)); + printf("status %d\n", WEXITSTATUS(status)); } - DataManager_SetIntValue("tw_has_cancel", 0); // Remove cancel button from gui now that the zip install is going to start set_usb_driver(false); maybe_restart_adbd(); struct stat st; if (stat(install_file, &st) != 0) { if (errno == ENOENT) { - ui->Print("No package received.\n"); + printf("No package received.\n"); } else { - ui->Print("Error reading package:\n %s\n", strerror(errno)); + printf("Error reading package:\n %s\n", strerror(errno)); } - return INSTALL_ERROR; + return -1; } - return TWinstall_zip(install_file, wipe_cache); + return 0; } -- cgit v1.2.3