summaryrefslogtreecommitdiffstats
path: root/tools/idevicebackup2.c
AgeCommit message (Collapse)AuthorFilesLines
2014-10-02idevicebackup2: Fix backup failure for passcode devices entering lock screenGravatar Martin Szulecki1-1/+1
A device would report "ErrorCode 1: Error copying keychain data (MBErrorDomain/1)" if a device entered lock state and had a passcode enabled during the backup or restore process. To prevent this, an escrow bag must be sent when starting the service to keep the operation "alive".
2014-10-02idevicebackup2: Use macro instead of plain AFC service nameGravatar Martin Szulecki1-1/+1
2014-10-02idevicebackup2: Use correct label for lockdown requestsGravatar Martin Szulecki1-2/+2
2014-09-13idevicebackup2: Fix retry loop when device requests 0 filesGravatar Nikias Bassen1-1/+0
Under certain circumstances a device could request an empty array of filenames to be transferred with DLMessageDownloadFiles. This was not handled correctly in idevicebackup2 by just doing nothing, resulting in a 'retry loop' waiting endlessly for new messages from the device. The solution is to send a termination packet and a success status response. Thanks to pondahai for reporting.
2014-08-06idevicebackup2/idevicebackup: Remove code duplication and use common code ↵Gravatar Nikias Bassen1-92/+1
for reading/writing plist files
2014-06-21idevicebackup2: Use afc_dictionary_free() helper instead of custom codeGravatar Martin Szulecki1-16/+3
2014-05-03idevicebackup2: Plug more memory leaksGravatar Nikias Bassen1-1/+8
2014-05-03idevicebackup2: Make sure to free idevice object in error conditionsGravatar Nikias Bassen1-0/+3
2014-05-03idevicebackup2: Plug small memory leakGravatar Nikias Bassen1-1/+1
2014-05-01idevicebackup2: Fix invalid check for password given on command lineGravatar Nikias Bassen1-1/+1
2014-03-24idevicebackup2: add cast to silence compiler warningGravatar Nikias Bassen1-1/+1
2014-03-24idevicebackup2: WIN32: Use _stati64() instead of stat() so we can handle ↵Gravatar Nikias Bassen1-2/+17
file sizes > 4GB
2014-03-20Bump dependency to libplist 1.11 and remove use of "plist_dict_insert_item()"Gravatar Martin Szulecki1-38/+38
2014-03-04idevicebackup2: Remove service name defines obsoleted by public headersGravatar Martin Szulecki1-3/+0
2014-01-31idevicebackup2: allow unbacking encrypted backups (given the password)Gravatar Nikias Bassen1-2/+6
2013-09-27idevicebackup2: Cloud support broke other commands thus change it be a commandGravatar Martin Szulecki1-24/+51
The experimental cloud support was triggered on each run of any command which caused some to break on devices without iCloud setup. We now trigger the cloud support in a separate command to fix this and allow further investigation into a proper implementation.
2013-09-22idevicebackup2: suppress message when notification_proxy gets disconnectedGravatar Nikias Bassen1-0/+3
2013-09-22idevicebackup2: fix possible crash due to use-after-freeGravatar Nikias Bassen1-0/+1
2013-09-21idevicebackup2: Add experimental support for using backups in the cloudGravatar Martin Szulecki1-3/+22
2013-09-21idevicebackup2: Add argument to enforce a full backup from deviceGravatar Martin Szulecki1-2/+14
2013-08-08idevicebackup2: Implement support for encrypted backups in Unback commandGravatar Aaron Burghardt1-1/+9
Allows to specify a password for the Unback request. It is also sent in the main message, not in an options dictionary.
2013-06-30 Fixed leaked plist uint which is passed to ↵Gravatar Aaron Burghardt1-1/+3
mobilebackup2_send_status_response().
2013-06-30Fixed multiple occurrences of memory leaks when empty plist dicts are passed ↵Gravatar Aaron Burghardt1-5/+13
to mobilebackup2_send_status_response().
2013-06-30Fixed leaked lockdowns client object in do_post_notification().Gravatar Aaron Burghardt1-0/+1
2013-06-30Fixed memory leak in mb2_status_check_snapshot_state() by freeing the string ↵Gravatar Aaron Burghardt1-0/+1
returned from plist_get_string_val().
2013-06-30Fixed memory leak by creating empty plist dict for iTunes settings only when ↵Gravatar Aaron Burghardt1-2/+2
it can’t be retrieved from the lockdown connection. That mimics the leaking implementation, but maybe it should be an error.
2013-05-23Silence compiler warnings for win32 buildsGravatar Martin Szulecki1-2/+1
2013-03-18idevicebackup2: Fix integer overflow bug on 32-bit architecturesGravatar Martin Szulecki1-1/+1
2013-03-14global: make sure to check service before checking service->port to prevent ↵Gravatar Nikias Bassen1-8/+3
crashes
2013-02-26Refactor port number use into service descriptor to enable SSL for servicesGravatar Martin Szulecki1-17/+37
This is a major change which breaks API but is required in order to support SSL communication for services as used by network connections.
2013-02-09idevicebackup2: added interactive mode (-i) for password inputGravatar Nikias Bassen1-4/+17
2013-02-01idevicebackup2: fix invalid free in mkdir_with_parentsGravatar Nikias Bassen1-3/+3
2013-01-24idevicebackup2: change several global variables to local onesGravatar Nikias Bassen1-52/+59
2013-01-24idevicebackup2: fix invalid whitespaceGravatar Nikias Bassen1-2/+2
2013-01-24idevicebackup2: use reported error code instead of 0 as exit codeGravatar Nikias Bassen1-4/+8
2013-01-24idevicebackup2: make sure -1 is returned if invalid arguments are passedGravatar Nikias Bassen1-6/+6
2013-01-16idevicebackup2: Refactor output of overall progress for more frequent reportingGravatar Martin Szulecki1-10/+36
2013-01-16idevicebackup2: request password interactively if required on restoreGravatar Nikias Bassen1-0/+34
2013-01-16idevicebackup2: allow setting encryption on/off and change backup passwordGravatar Nikias Bassen1-24/+275
2013-01-07idevicebackup2: Fix nasty "too long filename received" bugGravatar Martin Szulecki1-35/+68
If the device is sending files to the host, it sometimes requires a bit more time to process them before sending. This appeared to happen mostly for larger sqlite databases which appear to get some preprocessing on the device. In such a "wait" situation, we receive no data and need to retry reading the filename length again. Due to a code bug though which didn't reset the last read length to zero, this length was incorrectly alternating between 1 and 16777216 due to the byte swapping. This ulitmativly lead to a broken backup process. Now we properly wait for the device to preprocess any file before sending the filename to the host.
2012-12-08idevicebackup2: Implement support to supply backup password for restoreGravatar Martin Szulecki1-7/+24
2012-11-29idevicebackup2: suppress "Can't remove" warning about Manifest.mbdxGravatar Nikias Bassen1-2/+11
This file is not used anymore since iOS 5.0 but the device's BackupAgent2 is still requesting the deletion of this file. To not confuse the user we just suppress the warning if the file could not be deleted.
2012-11-29idevicebackup2: Add flag to remove items not being restored from target deviceGravatar Martin Szulecki1-2/+10
2012-11-29idevicebackup2: add --source option to allow using backup directories from ↵Gravatar Nikias Bassen1-76/+39
other devices
2012-11-29tools: mass replace 'device' with 'phone' variable namesGravatar Nikias Bassen1-12/+12
2012-11-29idevicebackup2: pass UDID to factory_info_plist_new instead of requeryingGravatar Nikias Bassen1-6/+3
2012-11-29tools: use pointer instead of static buffer for UDID since it can start with '0'Gravatar Nikias Bassen1-8/+8
2012-11-22idevicebackup2: use RemoveDirectory/DeleteFile instead of remove() on win32Gravatar Nikias Bassen1-0/+37
2012-11-22idevicebackup2: fix building on win32Gravatar Nikias Bassen1-3/+12
2012-10-16idevicebackup2: updated for compatibility with iOS6Gravatar Nikias Bassen1-2/+13