diff options
| -rw-r--r-- | tools/idevicebackup.c | 19 | 
1 files changed, 15 insertions, 4 deletions
| diff --git a/tools/idevicebackup.c b/tools/idevicebackup.c index d6380d0..cacacc4 100644 --- a/tools/idevicebackup.c +++ b/tools/idevicebackup.c @@ -872,11 +872,22 @@ int main(int argc, char *argv[])  			break;  			case CMD_RESTORE: -			printf("Restoring backup is NOT IMPLEMENTED.\n"); -			/* verify battery on AC enough battery remaining */ +			/* TODO: verify battery on AC enough battery remaining */ +			/* verify if Status.plist says we read from an successful backup */ +			/* now make sure backup integrity is ok! verify all files */ +				/* loop over Files entries in Manifest data plist */ +					/* make sure both .mddata/.mdinfo files are available for each entry */  			/* request restore from device with manifest (BackupMessageRestoreMigrate) */ -			/* read mddata/mdinfo files and send to devices using DLSendFile */ -			/* signal restore finished message to device */ +			/* loop over Files entries in Manifest data plist */ +				/* read mddata/mdinfo files and send to device using DLSendFile */ +				/* if all hunks of a file are sent, device must send ack */ +			/* observe notification_proxy id com.apple.mobile.application_installed */ +			/* loop over Applications entries in Manifest data plist */ +				/* send AppInfo entries */ +				/* receive com.apple.mobile.application_installed notification */ +				/* receive BackupMessageRestoreApplicationReceived from device */ +			/* signal restore finished message to device; BackupMessageRestoreComplete */ +			/* close down notification_proxy connection */  			/* close down lockdown connection as it is no longer needed */  			lockdownd_client_free(client);  			client = NULL; | 
