int main(int argc, char const *argv[]) { int choice_of_your_life; system("clear"); ipswDownloader(); system("clear"); printf("Choose what you want to do\n"); printf(" 1) Decrypt Root Filesystem\n"); printf(" 2) Decrypt Ramdisk\n"); printf(" 3) Decrypt IMG3 File\n"); printf(" 4) Decrypt DFU File\n"); printf(" 5) Decrypt Kernelcache\n"); printf(" 6) Patch iBEC/iBSS\n"); printf(" 7) Save SHSHs blobs\n"); printf("Command : "); choice_of_your_life = fgetn(); switch (choice_of_your_life) { case 1 : rootfs(); break; case 2 : Ramdisk(); break; case 3 : IMG3(); break; case 4 : DFU_file(); break; case 5 : kernelcache(); break; case 6 : patcher(); break; case 7 : save_blobs(); break; case 8 : joker(); break; default : printf("No option available yet\n"); } return 0; }
int main(int argc, char *argv[]) { char root[NAMEMAX * 5]; int r, fd; if (rootfs() < 0) { return ERR; } fd = open("/dev", O_RDONLY|O_CREATE, ATTR_wr|ATTR_rd|ATTR_dir); if (fd < 0) { return ERR; } close(fd); fd = open("/mnt", O_RDONLY|O_CREATE, ATTR_rd|ATTR_dir); if (fd < 0) { return ERR; } close(fd); fd = open("/bin", O_RDONLY|O_CREATE, ATTR_rd|ATTR_dir); if (fd < 0) { return ERR; } close(fd); r = machinit(); if (r != OK) { return ERR; } /* matrix(1000, 1, 1000); */ while (true) { printf("root: "); r = readline(root, sizeof(root)); if (r < 0) { printf("error reading!\n"); return ERR; } printf("mountfat %s /mnt\n", root); r = mountfat(root, "/mnt"); if (r == OK) { break; } else { printf("error mounting root!\n"); } } printf("bind /mnt/bin /bin\n"); bind("/mnt/bin", "/bin"); printf("exec /bin/init\n"); r = exec("/bin/init", argc, argv); printf("error exec /bin/init: %i\n", r); return r; }