summaryrefslogtreecommitdiffstats
path: root/src/idevicerestore.c
AgeCommit message (Collapse)AuthorFilesLines
13 daysDo not try to print SEP nonce if none was retrievedGravatar Nikias Bassen1-2/+4
2025-09-11Fix log output of get_ap_nonce/get_sep_nonceGravatar Nikias Bassen1-8/+4
2025-09-11Increase timeout for device to enter restore modeGravatar Nikias Bassen1-1/+1
2025-09-06Print message about USB port for macOS restores in case Port DFU failsGravatar Nikias Bassen1-0/+4
Depending on the model, a specific USB Port has to be used for a restore. When using a different one, Port DFU fails to switch to DFU mode. We use this fact to print a message with an official link that shows the correct USB port to use for the restore.
2025-07-01Fix a couple of compiler warnings and remove unused variablesGravatar Nikias Bassen1-3/+0
2025-07-01Update codebase to use (const) void* and size_t where applicableGravatar Nikias Bassen1-16/+16
2025-06-27Improve type safety of new logging system and its handling of varargsGravatar Visual Ehrmanntraut1-2/+2
- Replaced loglevel arguments and globals using the `int` type with the `loglevel` enum. - Moved logging print func handler function declaration to typedef. - Fixed misuse of `print_func` where a char* was passed in place of `va_list` via a wrapper function `print_funcf`. - Fixed reuse of varargs in `logger` causing a segfault when `stderr_enabled` is true. - Fixed length in `snprintf` call inside `logger_hex_dump` truncating the printed text.
2025-06-23Refactor logging and add logfile supportGravatar Nikias Bassen1-292/+344
idevicerestore will now also create a logfile automatically, unless disabled with --logfile=NONE.
2025-03-27Fix iPhone 16e restore from normal modeGravatar Nikias Bassen1-12/+14
Because of the new Apple baseband the initial TSS request won't succeed when restoring from normal mode due to missing data for a @BBTicket. So now if the baseband information is missing, we don't try to add BBTicket data at all, which will make it work for iPhone 16e devices.
2025-03-20Allow building without support for limera1nGravatar Nikias Bassen1-3/+24
Use --without-limera1n at configure time to disable this feature.
2024-10-15Fix iPhone 16 restore from normal mode and add support for RecoveryOSGravatar Nikias Bassen1-11/+49
2024-09-28Be more precise about what is wrong when entering restore mode failsGravatar Nikias Bassen1-1/+5
2024-09-25Release DFU/Recovery client on disconnect and Increase timeout for port DFU ↵Gravatar Nikias Bassen1-1/+3
-> KIS
2024-09-21Initial support for iPhone 16 restoreGravatar Nikias Bassen1-0/+10
2024-09-19Also print libirecovery versionGravatar Nikias Bassen1-2/+2
2024-09-19Replace sprintf with snprintfGravatar Nikias Bassen1-9/+10
2024-09-18Print libtatsu version alongside idevicerestore versionGravatar Nikias Bassen1-2/+2
2024-09-18Only print libimobiledevice debug info for debug level > 2Gravatar Nikias Bassen1-1/+3
2024-06-24Add support for iOS 18 restore processGravatar Nikias Bassen1-2/+3
2024-06-16Remove OpenSSL dependency in favor of libimobiledevice-glue's hash functionsGravatar Nikias Bassen1-10/+4
This also removes the sha1/sha384 code from this repository since we are using the ones from libimobiledevice-glue now.
2024-06-12Add missing linebreak to log messageGravatar Nikias Bassen1-1/+1
2024-06-05Small change to align with updated libtatsuGravatar Nikias Bassen1-1/+1
2024-05-23Link against the new libtatsu and remove tss codeGravatar Nikias Bassen1-1/+2
2024-05-14Require libplist 2.6.0Gravatar Nikias Bassen1-12/+12
2024-05-05Updated to use libplist 2.5.0 APIGravatar Nikias Bassen1-28/+28
2024-04-04Remove annoying linebreakGravatar Nikias Bassen1-2/+1
2024-04-03Fix restore mode component personalisationGravatar Visual Ehrmanntraut1-23/+31
2024-03-23Add support for Port DFU device restoreGravatar Nikias Bassen1-0/+157
2024-03-23Fix some variable types for more consistencyGravatar Nikias Bassen1-7/+7
2024-03-08Make sure to extract the build manifest before doing restore mode checksGravatar Nikias Bassen1-14/+15
Otherwise we could set tss_enabled to 0 but the extraction would re-enable it.
2023-11-15Change path_get_basename()'s return type to const char*Gravatar tihmstar1-2/+1
This makes it clear that the return value is immutable and moreover suggests that the return vale is not allocated and thus should be treated carefully.
2023-11-09Fix update restore by making sure the premanifest is properly generatedGravatar Nikias Bassen1-2/+2
2023-11-07Print device Product and Build Version and IPSW Product and Build VersionGravatar Nikias Bassen1-18/+24
It wasn't entirely clear what "Product Version" and "Product Build" would be so prefixing it with "IPSW" makes it clear it's the version being restored.
2023-11-02Extract OS component when using older ipsw archivesGravatar Nikias Bassen1-0/+75
Older ipsw archives have the root filesystem stored in compressed format rather than just "stored". The "Verifying Filesystem" step would then fail as compressed files are not seekable in ZIP files. This commit introduces a detection for this and has the filesystem extracted should it be required. If not using a cache path, the temp file used for extraction will be deleted after the procedure is completed.
2023-10-07Improve debug output by suppressing libimobiledevice and libirecovery debug ↵Gravatar Nikias Bassen1-3/+6
output by default To get libimobiledevice and libirecovery output, add -d or --debug twice.
2023-09-14Refactor ipsw code to transparently stream images directly from ZIP or ↵Gravatar Nikias Bassen1-166/+29
extracted ipsw This allows flashing directly from IPSW archive without having to extract it first, and ultimately removes the "Extracting filesystem from IPSW" part. Restoring from extracted IPSW is also supported, just pass the path to the directory that has all the files from a given IPSW.
2023-04-14Allow setting custom TSS request URL through command line switchGravatar Nikias Bassen1-6/+33
2022-10-18Use limera1n_is_supported instead of compatibility check added with previous ↵Gravatar Nikias Bassen1-17/+1
commit
2022-10-12Check if device is limera1n-vulnerable for --pwn optionGravatar Alfie Cockell Gwinnett1-8/+30
2022-10-04img4: Add support for stitching with additional TBM dataGravatar Nikias Bassen1-2/+2
2022-10-02Reduce memory usage for SourceBootObjectV4 imagesGravatar Nikias Bassen1-1/+1
2022-09-16tss: Don't add @BBTicket in tss_request_new()Gravatar Nikias Bassen1-1/+1
2022-06-28Make sure to exactly match the passed variant when using --variantGravatar Nikias Bassen1-7/+7
2022-06-27Add --variant command line switch to specify build identity to useGravatar Nikias Bassen1-4/+15
2022-06-27Ignore 'Research*' variant in build identity selectionGravatar Nikias Bassen1-2/+2
2022-06-27Don't print an error message when RestoreBehavior is missingGravatar Nikias Bassen1-13/+6
2022-06-20Remove more serial number checks, and get ECID early on in all modesGravatar Nikias Bassen1-52/+6
Some devices seem to not have a serial number, usually in restore mode, which will cause the restore operation to fail since we specifically check for it. An earlier commit already removed the actual comparison in favor of comparing the ECID, but some checks would still result in restore failures as it can't retrieve the serial number on said devices at all. This commit also makes sure to get the ECID in all modes as early as possible and removes all the helper functions for it since they are not needed anymore.
2022-06-17Use more elegant way to match file name to component nameGravatar Nikias Bassen1-37/+33
2022-06-17Add support for iOS 16Gravatar Doron Zarhi1-5/+5
2022-04-25Increase recovery mode disconnect and re-connect timeout from 10 to 60 secondsGravatar Rodrigo Arias1-2/+2