summaryrefslogtreecommitdiffstats
path: root/src/idevicerestore.c
AgeCommit message (Collapse)AuthorFilesLines
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>
2021-10-26Add command line option to continue despite certain errors (e.g. baseband ↵Gravatar Nikias Bassen1-0/+9
update failure)
2021-09-24Prevent unnecessary delay on inital device detectionGravatar Nikias Bassen1-5/+7
2021-09-01Add new --ipsw-info command line switch to show information about build ↵Gravatar Nikias Bassen1-2/+18
identities etc.
2021-08-12img4: Check component entries in build identity for IMG4 tags (Img4PayloadType)Gravatar Nikias Bassen1-1/+1
2021-06-29Make device mode specific code more consistentGravatar Nikias Bassen1-52/+51
2021-06-29Remove unused functionsGravatar Nikias Bassen1-45/+34
2021-06-07tss: fix restore rules not applied for recoveryosGravatar Benjamin BOURGEAIS1-0/+3
2021-05-28Add SHA384 (and SHA512) implementation for use when compiling without OpenSSLGravatar Nikias Bassen1-0/+7
2021-05-27Use proper exit status values when returning from main()Gravatar Nikias Bassen1-10/+10
2021-05-26Remove libuuid dependencyGravatar Nikias Bassen1-9/+14
2021-05-08tss: Add new callsGravatar Benjamin BOURGEAIS1-0/+346
- Local policy (non persistent) - recoveryOS - recoveryOS Local policy (persistent) The local policy TSS request differs slightly between the one for the restore process and the recoveryOS. The one for the restore process is meant to be used only once, and the one for the recovery os is meant to be loaded from disk, and thus has a different request. See the Ap,LocalBoot parameter.
2021-05-08Explicit the component path in the IPSW archive when extracting themGravatar Benjamin BOURGEAIS1-1/+1
2021-05-08Add an embedded empty local policy fileGravatar Benjamin BOURGEAIS1-0/+7
This file will be needed later by the stage 1 boot process.
2020-07-09Fix 'Unable get path ...' error messages to say 'Unable to get path ...'Gravatar Nikias Bassen1-1/+1
2020-06-24Print note about usbmuxd when device fails to enter restore modeGravatar Nikias Bassen1-0/+1
2020-06-15Add hint that using custom firmware files only works with a bootrom exploit1.0.0Gravatar Martin Szulecki1-1/+1
2020-06-08Remove trailing whitespace errors from all filesGravatar Martin Szulecki1-3/+3
2020-06-04Add new "--version" option to output version information and update man pageGravatar Martin Szulecki1-1/+8
2020-06-04Unify usage output with other tools and add project URLsGravatar Martin Szulecki1-34/+38
2020-06-04Reformat indentation of option struct for readabilityGravatar Martin Szulecki1-19/+19