diff options
author | Nikias Bassen | 2019-01-16 03:54:06 +0100 |
---|---|---|
committer | Nikias Bassen | 2019-01-16 03:54:06 +0100 |
commit | 1258f9a5c2153c2293f9b797fb80824aa23be656 (patch) | |
tree | d3e7f4c5a1a3b0426dd8486a4edba52d53b3ce90 | |
parent | fe2afea8aa5988f7c2d7027caa1817dc61da6ec3 (diff) | |
download | idevicerestore-1258f9a5c2153c2293f9b797fb80824aa23be656.tar.gz idevicerestore-1258f9a5c2153c2293f9b797fb80824aa23be656.tar.bz2 |
restore: Add fallback SE,* component selection for unknown SE,ChipIDs
-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) { |