mirror of
https://github.com/tihmstar/futurerestore.git
synced 2025-01-08 20:25:30 +00:00
added option to manually set bbgcid as workaroung for baseband not signed bug
This commit is contained in:
parent
6b0085ff6a
commit
da40807d6f
|
@ -30,6 +30,7 @@ static struct option longopts[] = {
|
||||||
{ "debug", no_argument, NULL, 'd' },
|
{ "debug", no_argument, NULL, 'd' },
|
||||||
{ "latest-sep", no_argument, NULL, '0' },
|
{ "latest-sep", no_argument, NULL, '0' },
|
||||||
{ "latest-baseband", no_argument, NULL, '1' },
|
{ "latest-baseband", no_argument, NULL, '1' },
|
||||||
|
{ "bbgcid", required_argument, NULL, '2' },
|
||||||
{ NULL, 0, NULL, 0 }
|
{ NULL, 0, NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -42,6 +43,7 @@ void cmd_help(){
|
||||||
printf("Usage: futurerestore [OPTIONS] IPSW\n");
|
printf("Usage: futurerestore [OPTIONS] IPSW\n");
|
||||||
printf("Allows restoring nonmatching iOS/Sep/Baseband\n\n");
|
printf("Allows restoring nonmatching iOS/Sep/Baseband\n\n");
|
||||||
|
|
||||||
|
printf(" --bbgcid ID\t\tmanually specify bbgcid\n");
|
||||||
printf(" -t, --apticket PATH\t\tApticket used for restoring\n");
|
printf(" -t, --apticket PATH\t\tApticket used for restoring\n");
|
||||||
printf(" -b, --baseband PATH\t\tBaseband to be flashed\n");
|
printf(" -b, --baseband PATH\t\tBaseband to be flashed\n");
|
||||||
printf(" -p, --baseband-manifest PATH\tBuildmanifest for requesting baseband ticket\n");
|
printf(" -p, --baseband-manifest PATH\tBuildmanifest for requesting baseband ticket\n");
|
||||||
|
@ -113,6 +115,10 @@ int main(int argc, const char * argv[]) {
|
||||||
case '1': // long option: "latest-baseband";
|
case '1': // long option: "latest-baseband";
|
||||||
flags |= FLAG_LATEST_BASEBAND;
|
flags |= FLAG_LATEST_BASEBAND;
|
||||||
break;
|
break;
|
||||||
|
case '2': // long option: "latest-baseband";
|
||||||
|
devVals.bbgcid = (uint64_t)atoll(optarg);
|
||||||
|
printf("manually set bbgcid to %llu\n",(unsigned long long)devVals.bbgcid);
|
||||||
|
break;
|
||||||
case 'd': // long option: "debug"; can be called as short option
|
case 'd': // long option: "debug"; can be called as short option
|
||||||
idevicerestore_debug = 1;
|
idevicerestore_debug = 1;
|
||||||
break;
|
break;
|
||||||
|
@ -177,8 +183,10 @@ int main(int argc, const char * argv[]) {
|
||||||
}
|
}
|
||||||
|
|
||||||
versVals.basebandMode = kBasebandModeOnlyBaseband;
|
versVals.basebandMode = kBasebandModeOnlyBaseband;
|
||||||
if (!(devVals.bbgcid = client.getBasebandGoldCertIDFromDevice())){
|
if (!devVals.bbgcid) {
|
||||||
printf("[WARNING] using tsschecker's fallback to get BasebandGoldCertID. This might result in invalid baseband signing status information\n");
|
if (!(devVals.bbgcid = client.getBasebandGoldCertIDFromDevice())){
|
||||||
|
printf("[WARNING] using tsschecker's fallback to get BasebandGoldCertID. This might result in invalid baseband signing status information\n");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!(isBasebandSigned = isManifestSignedForDevice(client.basebandManifestPath(), &devVals, &versVals))) {
|
if (!(isBasebandSigned = isManifestSignedForDevice(client.basebandManifestPath(), &devVals, &versVals))) {
|
||||||
reterror(-3,"baseband firmware isn't signed\n");
|
reterror(-3,"baseband firmware isn't signed\n");
|
||||||
|
|
Loading…
Reference in a new issue