int
main(int argc, char **argv) {
  char* hijacked_executable = argv[0];
  int result;

  if (NULL != strstr(hijacked_executable, "bootmenu")) {
    fprintf(stdout, "Run BootMenu..\n");
    result = run_bootmenu();
    sync();
    return result;
  }
  else if (argc >= 3 && 0 == strcmp(argv[2], "userdata")) {
    real_execute(argc, argv);
    result = run_bootmenu();
    bypass_sign("no");
    sync();
    return result;
  }
  else if (argc >= 3 && 0 == strcmp(argv[2], "pds")) {
    real_execute(argc, argv);
    exec_script(FILE_OVERCLOCK, DISABLE);
    result = exec_script(FILE_POST_MENU, DISABLE);
    bypass_sign("no");
    sync();
    return result;
  }
  else {
    return real_execute(argc, argv);
  }
}
Ejemplo n.º 2
0
/**
 * main()
 *
 * Here is the hijack part, logwrapper is linked to bootmenu
 * we trap some of logged commands from init.rc
 *
 */
int main(int argc, char **argv) {
  char* executable = argv[0];
  int result;

  if (argc == 2 && 0 == strcmp(argv[1], "postbootmenu")) {
    exec_script(FILE_OVERCLOCK, DISABLE);
    result = exec_script(FILE_POST_MENU, DISABLE);
    bypass_sign("no");
    sync();
    return result;
  }
  else if (NULL != strstr(executable, "bootmenu")) {
    fprintf(stdout, "Run BootMenu..\n");
    result = run_bootmenu();
    sync();
    return result;
  }
  else if (argc >= 3 && 0 == strcmp(argv[2], "userdata")) {
    result = run_bootmenu();
    real_execute(argc, argv);
    bypass_sign("no");
    sync();
    return result;
  }
  else if (argc >= 3 && 0 == strcmp(argv[2], "pds")) {
    //kept for stock rom compatibility, please use postbootmenu
    real_execute(argc, argv);
    exec_script(FILE_OVERCLOCK, DISABLE);
    result = exec_script(FILE_POST_MENU, DISABLE);
    bypass_sign("no");
    sync();
    return result;
  }
  else {
    return real_execute(argc, argv);
  }
}