summaryrefslogtreecommitdiffstats
path: root/recovery.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'recovery.cpp')
-rw-r--r--recovery.cpp29
1 files changed, 6 insertions, 23 deletions
diff --git a/recovery.cpp b/recovery.cpp
index 5f1607553..e777c46cd 100644
--- a/recovery.cpp
+++ b/recovery.cpp
@@ -350,9 +350,12 @@ static std::vector<std::string> get_args(const int argc, char** const argv) {
// --- if that doesn't work, try the command file (if we have /cache).
if (argc == 1 && has_cache) {
std::string content;
- if (android::base::ReadFileToString(COMMAND_FILE, &content)) {
+ if (ensure_path_mounted(COMMAND_FILE) == 0 &&
+ android::base::ReadFileToString(COMMAND_FILE, &content)) {
std::vector<std::string> tokens = android::base::Split(content, "\n");
- for (auto it = tokens.begin() + 1; it != tokens.end(); it++) {
+ // All the arguments in COMMAND_FILE are needed (unlike the BCB message,
+ // COMMAND_FILE doesn't use filename as the first argument).
+ for (auto it = tokens.begin(); it != tokens.end(); it++) {
// Skip empty and '\0'-filled tokens.
if (!it->empty() && (*it)[0] != '\0') args.push_back(std::move(*it));
}
@@ -1522,27 +1525,7 @@ int main(int argc, char **argv) {
for (const auto& arg : args) {
printf(" \"%s\"", arg.c_str());
}
- printf("\n");
-
- if (update_package) {
- // For backwards compatibility on the cache partition only, if
- // we're given an old 'root' path "CACHE:foo", change it to
- // "/cache/foo".
- if (strncmp(update_package, "CACHE:", 6) == 0) {
- int len = strlen(update_package) + 10;
- char* modified_path = (char*)malloc(len);
- if (modified_path) {
- strlcpy(modified_path, "/cache/", len);
- strlcat(modified_path, update_package+6, len);
- printf("(replacing path \"%s\" with \"%s\")\n",
- update_package, modified_path);
- update_package = modified_path;
- }
- else
- printf("modified_path allocation failed\n");
- }
- }
- printf("\n");
+ printf("\n\n");
property_list(print_property, NULL);
printf("\n");