diff options
Diffstat (limited to 'src/restore.c')
-rw-r--r-- | src/restore.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/restore.c b/src/restore.c index 6d5d808..9248d7f 100644 --- a/src/restore.c +++ b/src/restore.c @@ -1811,8 +1811,16 @@ plist_t restore_get_se_firmware_data(restored_client_t restore, struct idevicere } else if (chip_id == 0x73 || chip_id == 0x64) { comp_name = "SE,UpdatePayload"; } else { - error("ERROR: Neither 'SE,Firmware' nor 'SE,UpdatePayload' found in build identity.\n"); - return NULL; + info("WARNING: Unknown SE,ChipID 0x%x detected. Restore might fail.\n", chip_id); + if (build_identity_has_component(build_identity, "SE,UpdatePayload")) + comp_name = "SE,UpdatePayload"; + else if (build_identity_has_component(build_identity, "SE,Firmware")) + comp_name = "SE,Firmware"; + else { + error("ERROR: Neither 'SE,Firmware' nor 'SE,UpdatePayload' found in build identity.\n"); + return NULL; + } + debug("DEBUG: %s: using %s\n", __func__, comp_name); } if (build_identity_get_component_path(build_identity, comp_name, &comp_path) < 0) { |