summaryrefslogtreecommitdiffstats
path: root/src/idevicerestore.c
AgeCommit message (Collapse)AuthorFilesLines
2019-10-11Use condition variable instead of active waiting for device event handlingGravatar Nikias Bassen1-6/+50
With some devices and USB hardware the reconnect of a device might actually be faster than the check interval of the active waiting loop. With mutexes and a condition variable we will not miss the moment of reconnect anymore, even if it is really quick (like 7ms, right DanyL?)
2019-10-07Fix log messageGravatar Nikias Bassen1-1/+1
2019-10-07DFU: Properly detect iBSS and iBEC execution (via device reconnect)Gravatar Nikias Bassen1-7/+4
Also prevent sending the iBEC twice which happened due to the changes in device detection logic.
2019-10-07Recovery: Properly detect iBEC execution (via device reconnect)Gravatar Nikias Bassen1-4/+21
2019-10-04Select first discovered recovery/dfu device if no ECID is givenGravatar Nikias Bassen1-0/+3
2019-09-26Make sure ApSupportsImg4 is set for local manifest (stashbag) creationGravatar Nikias Bassen1-0/+1
2019-09-26Add more cancellation points to handle CTRL+CGravatar Nikias Bassen1-0/+28
2019-09-26Make sure CTRL+C is working at specific stages of the processGravatar Nikias Bassen1-4/+16
2019-09-25Use global event handlers for normale/restore and recovery/dfu mode devicesGravatar Nikias Bassen1-5/+105
2019-09-25Add new Vinyl tags to (preflight) TSS requestGravatar Nikias Bassen1-0/+28
2019-08-30Prompt user before trying to downgrade a device via Upgrade restore (i.e. ↵Gravatar Nikias Bassen1-0/+57
without erasing user data) Since it might result in a complete data loss, let's warn the user about it and ask for confirmation. This check is not performed when -y command line switch is used.
2019-08-29Add support to "preboard" a device on update restore to prevent 'Attempting ↵Gravatar Nikias Bassen1-0/+103
data recovery'
2019-06-18Add warning with confirmation prompt when performing an erase restore in ↵Gravatar Nikias Bassen1-1/+25
interactive mode
2019-03-22Make sure user input can be cancelled properlyGravatar Nikias Bassen1-0/+4
2019-02-14Fix usage output and reorder it by relevanceGravatar Nikias Bassen1-24/+32
2019-02-14Use uint64_t instead of off_t for win32/MinGW compatibilityGravatar Nikias Bassen1-2/+2
2019-02-14Ensure all required components from IPSW are present before trying to restoreGravatar Nikias Bassen1-0/+42
2019-02-14Allow .ipsw files or extracted IPSW as sourceGravatar Nikias Bassen1-30/+44
2019-02-02Remove unused function build_manifest_get_build_identity()Gravatar Nikias Bassen1-22/+0
2019-02-02Mention name of filesystem image when extracting itGravatar Nikias Bassen1-1/+1
2019-02-02Don't allow passing an empty UDID with --udidGravatar Nikias Bassen1-0/+5
2019-02-02Use ipsw.me API to allow selection and download of any signed firmware ↵Gravatar Nikias Bassen1-4/+102
version when using --latest
2019-01-28main: Do not download version data unless --latest command line switch is usedGravatar Nikias Bassen1-3/+5
... or we are dealing with a really old WTF device that doesn't ship the WTF firmware in its .ipsw
2019-01-23Replace tempnam() with mkstemp() and provide reference implementation for ↵Gravatar Nikias Bassen1-1/+1
systems lacking it
2019-01-21win32: Make sure to use binary flag for fopen everywhereGravatar Nikias Bassen1-1/+1
2019-01-16main: Allow passing ECID in hex or decimalGravatar Nikias Bassen1-4/+4
2019-01-16Add lowpowermode aka LowPowerWallet0 component to get_component_name()Gravatar Nikias Bassen1-0/+2
2017-12-12AppleTV: Only wait for older AppleTV models to enter recovery mode after restoreGravatar Nikias Bassen1-2/+2
2017-11-13Change check_hardware_model() to get_irecv_device()Gravatar BALATON Zoltan1-17/+9
The check_hardware_model() function has a misleading name. It returns a string with the hardware model but this is not used. Instead, this function is only called for its side effect to initialise an irecv device in the passed client struct which it creates from the hardware model name returned by mode specific implementations. But these mode specific implementations already create an irecv device to get the hardware model name so instead of going through this unnecessary complication just return the irecv device directly and rename the function accordingly to make this clear. (This may also prevent leaking an irecv device in the mode specific functions.)
2017-10-17Move extraction of filesystem before requesting SHSH blobsGravatar Nikias Bassen1-90/+93
2017-09-28Invert return value of build_identity_has_component()Gravatar Nikias Bassen1-3/+3
2017-03-05Add '-k' as short option for '--keep-pers' as advertised in usage infoGravatar Nikias Bassen1-1/+1
2017-02-07Remove some unneded variables and conditionals and plug some potential ↵Gravatar BALATON Zoltan1-3/+1
memory leaks
2017-02-07Do not save personalized components with debug, add a new option for itGravatar BALATON Zoltan1-3/+11
2016-09-22Add support for new Liquid component found in iPhone 7/7+ firmwaresGravatar Nikias Bassen1-0/+2
2016-06-26ipsw: Add ipsw_extract_to_file_with_progress() and remove progress bar from ↵Gravatar Nikias Bassen1-1/+1
ipsw_extract_to_file()
2016-05-26Prevent possible crash if device mode can't be detectedGravatar Nikias Bassen1-8/+47
2015-10-09Select build identity based on hardware model instead of first or last ↵Gravatar Nikias Bassen1-9/+61
identity in manifest While this might have worked in the past it didn't work anymore with the iPhone 6S (plus) since it comes with two different CPUs (Samsung & TSMC A9). Therefore the BuildManifest.plist has multiple build identities and for a successful restore the correct build identity has to be selected for the actual hardware model of the corresponding device.
2015-10-09Use hardware model instead of product type to identify device correctlyGravatar Nikias Bassen1-12/+12
2015-10-06Show project URL in usage outputGravatar Martin Szulecki1-1/+6
2015-09-24Replace () with (void) for proper function prototypesGravatar Martin Szulecki1-1/+1
2015-05-05Fix some warningsGravatar BALATON Zoltan1-2/+0
2014-10-21Remove destination before moving a file to it as it can fail on some systems ↵Gravatar BALATON Zoltan1-0/+1
otherwise.
2014-05-16restore: Prevent disturbing error message due to missing SEP related componentsGravatar Martin Szulecki1-2/+1
2014-05-16Add build_identity_has_component() helperGravatar Martin Szulecki1-0/+14
2014-05-16tss: Free sep_nonce after use to prevent leakGravatar Martin Szulecki1-0/+1
2014-03-29Add newline at end of some info and error messages where it's missingGravatar Martin Szulecki1-2/+2
2014-03-22Use "plist_dict_set_item" instead of deprecated "plist_dict_insert_item"Gravatar Martin Szulecki1-38/+38
2014-03-21move curl_global_init/_cleanup to a global contextGravatar Nikias Bassen1-0/+6
2014-01-15put device in recovery mode _after_ extracting the root filesystemGravatar Nikias Bassen1-12/+12
Since we can grab tss records in normal mode and these depend on nonce values that are valid only for the first reboot, we should not extract the filesystem after putting the device into recovery mode. If the filesystem extraction takes longer (e.g. on a network filesystem) the recovery mode device might reboot while the file system is still extracting. In that case the TSS record that has been grabbed in normal mode would be invalid.