summaryrefslogtreecommitdiffstats
path: root/src/restore.c
AgeCommit message (Collapse)AuthorFilesLines
2019-01-23Replace tempnam() with mkstemp() and provide reference implementation for ↵Gravatar Nikias Bassen1-5/+8
systems lacking it
2019-01-16restore: Add TZ0RequiredCapacity to restore options to fix iPhone8/8+ boot ↵Gravatar Luis Duran1-0/+14
loop issue
2019-01-16restore/tss: Add support for Yonkers firmware data and TSS requestGravatar Rudolf Tammekivi1-1/+146
2019-01-16restore: Add fallback SE,* component selection for unknown SE,ChipIDsGravatar Nikias Bassen1-2/+10
2019-01-16restore: Add support for newer SEP firmware (Chip ID 0x64)Gravatar Nikias Bassen1-1/+1
2019-01-16restore: Avoid using get_component_name() when getting manifest from build ↵Gravatar Nikias Bassen1-18/+30
identity
2018-05-19restore: Send ReceivedFinalStatusMsg when restore succeeds as restored is ↵Gravatar Nikias Bassen1-0/+4
expecting it This prevents a delay of about 10 seconds at the final stage of the restore process.
2018-04-27Decide what to do when updating SE firmware based on chip IDGravatar BALATON Zoltan1-3/+7
This should be more accurate than guessing based on what is in the build identity and avoid doing unexpected things for unknown hardware.
2018-04-27restore: Remove unused variablesGravatar BALATON Zoltan1-2/+0
2017-12-10restore: Only print info about other detected devices in debug modeGravatar Nikias Bassen1-1/+1
2017-11-13Remove a comma from array initialiser which some compilers don't likeGravatar BALATON Zoltan1-1/+1
2017-11-13Change check_hardware_model() to get_irecv_device()Gravatar BALATON Zoltan1-5/+2
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-11-14Fix Savage firmware updating for FaceID (iPhone X)Gravatar Nikias Bassen1-0/+13
While the restore was succeeding, FaceID wasn't available on the device. It turned out that the Savage Firmware data sent to the device requires a simple header that we didn't send along.
2017-11-06Add support for Savage firmware updating (found in iPhone X)Gravatar Nikias Bassen1-7/+101
2017-11-05restore: Prevent crash in fdr_disconnect() when exiting unexpectedlyGravatar Nikias Bassen1-4/+4
2017-09-29restore: Fix restore of iPhone 8/8+ SE firmwareGravatar Nikias Bassen1-1/+10
2017-09-28Invert return value of build_identity_has_component()Gravatar Nikias Bassen1-2/+2
2017-06-08restore: Add previously missing DeviceTree data request handlingGravatar Nikias Bassen1-0/+7
2017-06-08restore: Move restore_send_kernelcache() to a generic restore_send_component()Gravatar Nikias Bassen1-13/+15
2017-04-07restore: Fix a use-after-freeGravatar Nikias Bassen1-2/+3
Also fixing the string length of the affected strncmp. Credit to Mällon Lobjakas
2017-02-21restore: Add support for 10.3+ firmware images (ipsw)Gravatar Nikias Bassen1-14/+73
Starting with iOS 10.3 the ipsw files don't contain any 'manifest' file anymore which we used to determine the files required for the reply to the 'NorData' request. Since this info is also included in the BuildManifest we us that instead, unless a 'manifest' file is present.
2017-02-07Remove some unneded variables and conditionals and plug some potential ↵Gravatar BALATON Zoltan1-74/+48
memory leaks
2017-02-07Use udid as temp file name prefix to make it more unique and avoid race ↵Gravatar BALATON Zoltan1-1/+1
conditions when tempnam generated name is not random enough.
2016-09-30restore: Add support for FirmwareUpdaterData request used for Secure Element ↵Gravatar Nikias Bassen1-0/+167
firmware
2016-09-23restore: Make sure newer Mav16 baseband firmware image files are recognizedGravatar Nikias Bassen1-1/+2
The iPhone 7/7+ models with Mav16 baseband failed to restore as the baseband firmware files are now called RestoreSBL1-HastTableDigest and SBL1-HashTableDigest. The code only stripped off the '-Blob' part from the baseband tss response so it couldn't match the firmware filenames properly. This commit fixes the issue by only keeping the first part of the string (everything before the first occurance of '-').
2016-09-22Add support for ICE16 baseband firmware files (iPhone 7/7+)Gravatar Nikias Bassen1-1/+8
While not tested, the new Mav16 baseband firmware files should also work with this update.
2016-07-08restore: Fix error message to show the actual baseband component nameGravatar Nikias Bassen1-2/+2
2016-06-26restore: Explicitly stop FDR thread to suppress error messages at the end of ↵Gravatar Nikias Bassen1-0/+8
the restore
2016-06-26restore: Fix restore mode status/progress messagesGravatar Nikias Bassen1-63/+135
2016-06-26restore: Add support for FUD data request, required for iOS 10Gravatar Nikias Bassen1-0/+89
2015-10-09restore: Always enable reverse proxy, some newer devices (iPad Air) require ↵Gravatar Nikias Bassen1-16/+9
it for iOS 9+
2015-10-09Use hardware model instead of product type to identify device correctlyGravatar Nikias Bassen1-3/+3
2015-10-09restore: Fix segfault when .bbfw file contains files without extensionGravatar Nikias Bassen1-1/+1
2015-09-24restore: Print error message on status 53 (failed to recover FDR data)Gravatar Nikias Bassen1-0/+3
2015-09-24restore: Also print device UDID in log message when entering restore modeGravatar Nikias Bassen1-2/+2
2015-09-24restore: Fix inverted comparison checking for ApImg4Ticket in TSS responseGravatar Nikias Bassen1-1/+1
2015-09-24Revise several changes from commit 245bc9b6510a8900c69c2fd543434bae1bc6ca6aGravatar Nikias Bassen1-6/+2
In very rare cases the changes introduced by commit can actually cause an invalid free. Reverted those changes. Also, plist_free() will check for NULL before doing anything, so an extra check for that is not needed.
2015-09-24restore: Cast to thread_t to fix compiler warningGravatar Martin Szulecki1-1/+1
2015-05-05Update fdr implementation for thread function changes in latestGravatar BALATON Zoltan1-3/+3
libimobiledevice version
2015-05-05Improved command sequence and use SystemPartitionPadding from buildGravatar BALATON Zoltan1-5/+7
identity to make sure we use correct values.
2015-05-05Clean up free() usage and plug some potential memory leaksGravatar BALATON Zoltan1-70/+61
2014-11-04Implement the FDR forwarder proxy service used during restore of recent iOS ↵Gravatar BALATON Zoltan1-0/+21
versions.
2014-11-03tss: Add missing values to fix baseband TSS requestGravatar BALATON Zoltan1-0/+9
2014-10-28Rename restore step to indicate flashing of firmware instead of NORGravatar Martin Szulecki1-1/+1
2014-10-24restore: Handle FDRTrustData request messagesGravatar BALATON Zoltan1-2/+36
Only send an empty reply but this seems to be enough to restore devices that already have valid data.
2014-05-16restore: Prevent disturbing error message due to missing SEP related componentsGravatar Martin Szulecki1-5/+3
2014-03-22Use "plist_dict_set_item" instead of deprecated "plist_dict_insert_item"Gravatar Martin Szulecki1-45/+45
2014-01-07restore: make restore_asr_progress_cb staticGravatar Nikias Bassen1-1/+1
2013-12-01restore: removed unused variablesGravatar Nikias Bassen1-16/+4
2013-11-27Refactor TSS parameter handling and parse RestoreRequestRules properlyGravatar Nikias Bassen1-5/+7