summaryrefslogtreecommitdiffstats
path: root/src/idevicerestore.c
AgeCommit message (Collapse)AuthorFilesLines
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
2020-05-21Ignore non-usbmux (i.e. wifi sync) devices in device event callbackGravatar Nikias Bassen1-0/+6
2020-04-21Support stopping at restore modeGravatar Rick Mark1-1/+11
2020-04-20Use uint64_t and appropriate standard PRI* format specifiers everywhereGravatar Nikias Bassen1-10/+10
2020-04-12Fix format compiler warningsGravatar Rosen Penev1-1/+1
This also allows the compiler to check these at compile time.
2020-02-18Offer plain progress reports.Gravatar Nikias Bassen1-1/+13
2020-02-18Allow restores that start in Restore mode. Allow specification of custom ↵Gravatar David Wang1-22/+57
APTickets.
2019-10-20Error out if sending APTicket fails (older devices)Gravatar Nikias Bassen1-1/+4
2019-10-20Ignore device add events after device entered restore modeGravatar Nikias Bassen1-0/+5
2019-10-11Don't try to print a NULL udid in device event debug message and use working ↵Gravatar Nikias Bassen1-5/+5
format specifier for win32
2019-10-11win32: Use signal on win32 but make sure user input can be cancelled with ctrl+cGravatar Nikias Bassen1-1/+5
also added ESC key as a fallback cancel method.
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.