added option to manually set bbgcid as workaroung for baseband not signed bug

This commit is contained in:
tihmstar 2016-12-31 20:20:06 +01:00
parent 6b0085ff6a
commit da40807d6f

View file

@ -30,6 +30,7 @@ static struct option longopts[] = {
{ "debug", no_argument, NULL, 'd' },
{ "latest-sep", no_argument, NULL, '0' },
{ "latest-baseband", no_argument, NULL, '1' },
{ "bbgcid", required_argument, NULL, '2' },
{ NULL, 0, NULL, 0 }
};
@ -42,6 +43,7 @@ void cmd_help(){
printf("Usage: futurerestore [OPTIONS] IPSW\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(" -b, --baseband PATH\t\tBaseband to be flashed\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";
flags |= FLAG_LATEST_BASEBAND;
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
idevicerestore_debug = 1;
break;
@ -177,8 +183,10 @@ int main(int argc, const char * argv[]) {
}
versVals.basebandMode = kBasebandModeOnlyBaseband;
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 (!devVals.bbgcid) {
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))) {
reterror(-3,"baseband firmware isn't signed\n");