Skip to content

Commit

Permalink
sr: Add performance control
Browse files Browse the repository at this point in the history
 * Crank it up when installing

Change-Id: I997d937901ff446834e6c479aaf629bee51de388
  • Loading branch information
hyperb1iss authored and mikeNG committed Oct 15, 2016
1 parent 87f0e57 commit c07204f
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 5 deletions.
4 changes: 4 additions & 0 deletions adb_install.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -178,11 +178,15 @@ void stop_sideload() {
}

int wait_sideload() {
set_perf_mode(true);

pthread_join(sideload_thread, NULL);

ui->FlushKeys();

maybe_restart_adbd();

set_perf_mode(false);

return sideload_data.result;
}
25 changes: 20 additions & 5 deletions install.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@
#include "ui.h"
#include "verifier.h"

#include "cutils/properties.h"

extern RecoveryUI* ui;

#define ASSUMED_UPDATE_BINARY_NAME "META-INF/com/google/android/update-binary"
Expand Down Expand Up @@ -341,6 +343,8 @@ static int
really_install_package(const char *path, bool* wipe_cache, bool needs_mount,
std::vector<std::string>& log_buffer, int retry_count)
{
int ret = 0;

ui->SetBackground(RecoveryUI::INSTALLING_UPDATE);
ui->Print("Finding update package...\n");
// Give verification half the progress bar...
Expand Down Expand Up @@ -395,6 +399,8 @@ really_install_package(const char *path, bool* wipe_cache, bool needs_mount,
}
LOGI("%zu key(s) loaded from %s\n", loadedKeys.size(), PUBLIC_KEYS_FILE);

set_perf_mode(true);

// Verify package.
ui->Print("Verifying update package...\n");
auto t0 = std::chrono::system_clock::now();
Expand All @@ -419,7 +425,8 @@ really_install_package(const char *path, bool* wipe_cache, bool needs_mount,
log_buffer.push_back(android::base::StringPrintf("error: %d", kZipVerificationFailure));

sysReleaseMap(&map);
return INSTALL_CORRUPT;
ret = INSTALL_CORRUPT;
goto out;
}

// Try to open the package.
Expand All @@ -430,7 +437,8 @@ really_install_package(const char *path, bool* wipe_cache, bool needs_mount,
log_buffer.push_back(android::base::StringPrintf("error: %d", kZipOpenFailure));

sysReleaseMap(&map);
return INSTALL_CORRUPT;
ret = INSTALL_CORRUPT;
goto out;
}

// Verify and install the contents of the package.
Expand All @@ -439,15 +447,15 @@ really_install_package(const char *path, bool* wipe_cache, bool needs_mount,
ui->Print("Retry attempt: %d\n", retry_count);
}
ui->SetEnableReboot(false);
int result = try_update_binary(path, &zip, wipe_cache, log_buffer, retry_count);
ret = try_update_binary(path, &zip, wipe_cache, log_buffer, retry_count);
ui->SetEnableReboot(true);
ui->Print("\n");

sysReleaseMap(&map);

#ifdef USE_MDTP
/* If MDTP update failed, return an error such that recovery will not finish. */
if (result == INSTALL_SUCCESS) {
if (ret == INSTALL_SUCCESS) {
if (!mdtp_update()) {
ui->Print("Unable to verify integrity of /system for MDTP, update aborted.\n");
return INSTALL_ERROR;
Expand All @@ -456,7 +464,9 @@ really_install_package(const char *path, bool* wipe_cache, bool needs_mount,
}
#endif /* USE_MDTP */

return result;
out:
set_perf_mode(false);
return ret;
}

int
Expand Down Expand Up @@ -498,3 +508,8 @@ install_package(const char* path, bool* wipe_cache, const char* install_file,
}
return result;
}

void
set_perf_mode(bool enable) {
property_set("recovery.perf.mode", enable ? "1" : "0");
}
2 changes: 2 additions & 0 deletions install.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ enum { INSTALL_SUCCESS, INSTALL_ERROR, INSTALL_CORRUPT, INSTALL_NONE, INSTALL_SK
int install_package(const char* root_path, bool* wipe_cache, const char* install_file,
bool needs_mount, int retry_count);

void set_perf_mode(bool enable);

#ifdef __cplusplus
}
#endif
Expand Down

0 comments on commit c07204f

Please sign in to comment.