summaryrefslogtreecommitdiffstats
path: root/src/idevicerestore.c
AgeCommit message (Collapse)AuthorFilesLines
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
2022-04-13Print version string upon executionGravatar Nikias Bassen1-0/+2
2022-04-12More code improvements using _plist_dict_copy_* helperGravatar Nikias Bassen1-45/+12
2022-04-12Use proper detection for macOS restore path (instead of version number ↵Gravatar Nikias Bassen1-7/+14
comparison)
2022-04-10Fix build identity selection for beta (developer) firmwareGravatar Nikias Bassen1-13/+10
2021-11-27Use macros for the different restore variant stringsGravatar Nikias Bassen1-3/+3
2021-11-26Cache build manifest in client structGravatar Nikias Bassen1-23/+17
2021-11-17idevicerestore: Identify build identity by Variant (Monterey)Gravatar Hector Martin1-82/+9
Monterey got rid of VariantSupportsGlobalSigning. Identify builds based on the Variant field (which seems to always have consistent values) instead of using RestoreBehavior and VariantSupportsGlobalSigning. Signed-off-by: Hector Martin <marcan@marcan.st>