Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

Can't backup iPhone4

#180

Hello,

I'm trying to backup my iphone4 iOS 4.1, on Ubuntu 10.10 using:

  • libimobiledevice1 1.0.3-1ubuntu1~maverick1
  • libimobiledevice-utils 1.0.3-1ubuntu1~maverick1

But the backup doesn't even start (The iPhone is paired)

the debug log is attached

$ idevicebackup backup /home/wael/iPhone/Backup Backup directory is "/home/wael/iPhone/Backup"
Started "com.apple.mobilebackup" service on port 53271.
Reading Info.plist from backup.
Starting backup...
Reading existing Manifest.
Could not read Manifest.plist, switching to full backup mode.
Creating Info.plist for new backup.
Requesting backup from device...
ERROR: Could not start backup process: device refused to start the backup process.

Reported by Wael Nasreddine · November 15th, 2010 @ 03:40 PM

State: resolved
Milestone: 1.2.0 Release
Assigned to: nobody

Activity

  1. Wael Nasreddine
    Wael Nasreddine

    I just tried with my GF's iPhone 3GS, the exact same error happened...

    November 15th, 2010 @ 03:46 PM

  2. Nikias Bassen
    Nikias Bassen
    • State changed from new to open
    • Milestone set to 1.2.0 Release
    • Milestone order changed from 190890 to 0

    Hi, the reason for this to fail is that iOS 4.x has a new backup protocol. The implementation is WIP and can be found here http://cgit.sukimashita.com/libimobiledevice.git/log/?h=mobilebackup2
    It will be merged into master as soon as we complete the restore support and integrate it in idevicebackup.

    Regards
    Nikias

    November 20th, 2010 @ 12:48 PM

  3. Wael Nasreddine
    Wael Nasreddine

    Hi,

    Thank you for your reply, can you give us an ETA? (No need to be precise but in a month? two? a year?) Just to get an idea of how much work you're going to do..

    Thank you.

    November 20th, 2010 @ 01:06 PM

  4. Nikias Bassen
    Nikias Bassen

    I would say in about a month we should finally have this working.

    November 20th, 2010 @ 04:39 PM

  5. hilbert
    hilbert

    I have exactly the same issue here with iPhone 3GS and fw 4.1

    libimobiledevice 1.0.4

    Not to harry you up, but do you have an ETA for the merging?

    Thanks for all your work...

    January 8th, 2011 @ 02:27 PM

  6. hilbert
    hilbert

    One more thing. I've just tried the mobilebackup2 branch and the backup is working. Dunno about the restore.

    January 8th, 2011 @ 03:11 PM

  7. Nikias Bassen
    Nikias Bassen

    hilbert, I just updated the mobilebackup2 branch, and restore is now working too. You need to use the idevicebackup4 tool for that.
    We now have to put things together so that we have a general idevicebackup utility. Should take a two or three weeks to merge things together.

    January 8th, 2011 @ 03:53 PM

  8. hilbert
    hilbert

    great! great!! great!!! Let me enjoy the latest snapshot then... Do you mind dropping a line here when the final merge will be ready?

    January 8th, 2011 @ 03:57 PM

  9. Nikias Bassen
    Nikias Bassen

    Yes, the ticket will be set to resolved when it's done.

    January 8th, 2011 @ 04:04 PM

  10. hilbert
    hilbert

    While trying to do a restore I got the following error:

    toto@toto-VirtualBox:~/test$ bin/idevicebackup4 restore /home/toto/Documents/iphone-backup
    Backup directory is "/home/toto/Documents/iphone-backup"
    Started "com.apple.mobilebackup2" service on port 57210.
    Reading Info.plist from backup.
    Starting Restore...
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Status.plist': (189 bytes)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.plist': (15.0 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.mbdb': (493.9 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.mbdx': (110.1 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Info.plist': (22.7 KB)
    Copying 'bbe847655d3602e71d3325ad0163b76e626aea0d' to 'bbe847655d3602e71d3325ad0163b76e626aea0d-20110109-210930', please wait (TODO: implemented)
    Error opening '/home/toto/Documents/iphone-backup/bbe847655d3602e71d3325ad0163b76e626aea0d-20110109-210930/Info.plist' for writing: No such file or directory
    Segmentation fault

    Is it normal?

    January 9th, 2011 @ 08:14 PM

  11. Nikias Bassen
    Nikias Bassen

    Well, this one:

    Error opening '/home/toto/Documents/iphone-backup/bbe847655d3602e71d3325ad0163b76e626aea0d-20110109-210930/Info.plist' for writing: No such file or directory

    is expected, since the copying from uuid to uuid-date-time folder is not yet implemented (see line above).

    However the segmentation fault is unexpected. If you can reproduce this, it would be helpful if you could run idevicebackup4 with gdb to see where it crashes.

    gdb idevicebackup4
    

    inside gdb:

    run restore /home/toto/Documents/iphone-backup
    

    if it stops, you can type "bt" (without quotes) and paste the resulting lines here.

    January 9th, 2011 @ 08:24 PM

  12. hilbert
    hilbert

    Now, unfortunately I can't because the iPhone is with my wife and no more in front of the computer. I have only one concern. When it seg-fault'ed, the iPhone was switching off completely. Is it safe to redo-it? I wouldn't like to brick my wife jewel...

    If, in your opinion, it is safe... then I'll for sure try to debug it and send you the output.

    January 9th, 2011 @ 09:00 PM

  13. Nikias Bassen
    Nikias Bassen

    Well, I can't promise it will be safe. However if the device reboots during restore it would only write back the files that were transferred correctly so I don't expect any damage. It's up to you :) but if there's still a bug we will find it ourselves during testing.

    January 9th, 2011 @ 10:01 PM

  14. hilbert
    hilbert

    Ok I've tried to repeat the restore with the gdb and this is the output:

    (gdb) run restore /home/toto/Documents/iphone-backup
    Starting program: /home/toto/test/bin/idevicebackup4 restore /home/toto/Documents/iphone-backup
    [Thread debugging using libthread_db enabled]
    Backup directory is "/home/toto/Documents/iphone-backup"
    [New Thread 0xb7fe9b70 (LWP 1746)]
    Started "com.apple.mobilebackup2" service on port 51465.
    Reading Info.plist from backup.
    Starting Restore...
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Status.plist': (189 bytes)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.plist': (15.0 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.mbdb': (493.9 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.mbdx': (110.1 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Info.plist': (22.7 KB)
    Copying 'bbe847655d3602e71d3325ad0163b76e626aea0d' to 'bbe847655d3602e71d3325ad0163b76e626aea0d-20110110-190800', please wait (TODO: implemented)
    Error opening '/home/toto/Documents/iphone-backup/bbe847655d3602e71d3325ad0163b76e626aea0d-20110110-190800/Info.plist' for writing: No such file or directory
    
    Program received signal SIGSEGV, Segmentation fault.
    0x0804a8bc in handle_receive_files (message=<value optimized out>, 
        backup_dir=<value optimized out>) at idevicebackup4.c:1051
    1051            fname[r] = 0;
    (gdb) bt
    #0  0x0804a8bc in handle_receive_files (message=<value optimized out>, 
        backup_dir=<value optimized out>) at idevicebackup4.c:1051
    #1  0x0804bb55 in main (argc=3, argv=0xbffff454) at idevicebackup4.c:1645
    

    I hope it is useful.

    cheers,

    January 10th, 2011 @ 06:10 PM

  15. Nikias Bassen
    Nikias Bassen

    Hi,

    thanks for the feedback. Now we know where to start; we need to check for more error conditions.

    January 10th, 2011 @ 08:01 PM

  16. Nikias Bassen
    Nikias Bassen

    Ok I added more error checking to the appropriate function. You can try if it works now. If not, gdb is your friend.
    Remember to do a fresh backup before messing up the device.

    January 11th, 2011 @ 04:24 AM

  17. hilbert
    hilbert

    No luck again. But looking at the output of gdb I think we are pretty close to the solution now. Here it is:

    toto@toto-VirtualBox:~/test$ gdb bin/idevicebackup4
    GNU gdb (GDB) 7.2-ubuntu
    Copyright (C) 2010 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law. Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "i686-linux-gnu".
    For bug reporting instructions, please see:
    http://www.gnu.org/software/gdb/bugs/...
    Reading symbols from /home/toto/test/bin/idevicebackup4...done.
    (gdb) run restore /home/toto/Documents/new_bck Starting program: /home/toto/test/bin/idevicebackup4 restore /home/toto/Documents/new_bck
    [Thread debugging using libthread_db enabled] Backup directory is "/home/toto/Documents/new_bck"
    [New Thread 0xb7fe8b70 (LWP 5213)] Started "com.apple.mobilebackup2" service on port 49177.
    Reading Info.plist from backup.
    Starting Restore...
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Status.plist': (189 bytes)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.plist': (15.2 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.mbdb': (508.2 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Manifest.mbdx': (113.0 KB)
    Sending file 'bbe847655d3602e71d3325ad0163b76e626aea0d/Info.plist': (22.7 KB)
    Copying 'bbe847655d3602e71d3325ad0163b76e626aea0d' to 'bbe847655d3602e71d3325ad0163b76e626aea0d-20110112-000549', please wait (TODO: implemented)
    Error opening '/home/toto/Documents/new_bck/bbe847655d3602e71d3325ad0163b76e626aea0d-20110112-000549/Info.plist' for writing: No such file or directory
    ERROR: mb2_handle_receive_files: too long device filename (1651534953)!
    trashing padding

    Program received signal SIGSEGV, Segmentation fault.
    0x0804ae92 in fprintf (message=, backup_dir=) at /usr/include/bits/stdio2.h:98
    98 return fprintf_chk (stream, USE_FORTIFY_LEVEL - 1, fmt,
    (gdb) bt #0 0x0804ae92 in fprintf (message=, backup_dir=) at /usr/include/bits/stdio2.h:98 #1 debug_buf (message=, backup_dir=) at idevicebackup4.c:99 #2 mb2_handle_receive_files (message=, backup_dir=) at idevicebackup4.c:876 #3 0x0804bc54 in main (argc=3, argv=0xbffff454) at idevicebackup4.c:1352 (gdb)

    January 11th, 2011 @ 11:08 PM

  18. Nikias Bassen
    Nikias Bassen

    Hi,

    many thanks for the debugging output. The problem lies here:

    ERROR: mb2_handle_receive_files: too long device filename (1651534953)!
    
    the size 1651534953 in hex is 62706c69 which is the start of a plist document. '<pli'.
    So there seems to be a communication error as an xml plist is totally unexpected here.
    I need to think of why this is happening. I'll let you know when there's new code for testing ;)

    January 12th, 2011 @ 07:37 PM

  19. hilbert
    hilbert

    many thanks to you for all your efforts in doing such a nice job!

    January 12th, 2011 @ 08:54 PM

  20. hilbert
    hilbert

    There is an additional problem.

    I'm trying to compile the mobilebackup2 branch on Fedora 13 and I got an error (undefined GStatBuf in tools/idevicebackup4.c). Indeed GStatBuf is not defined in glib/gstdio.h (version 2.24), but only in later one as 2.26 that is the installed with Ubuntu.

    I've made an horrible patch by hand to gstdio.h and it compiles, but we should avoid this for the release.

    January 13th, 2011 @ 09:28 PM

  21. Martin S.
    Martin S.

    @hilbert: Simply replace the "GStatBuf" occurrence in the sources with "struct stat" and it compiles. This is going to be fixed in a release and probably better than modifing the glib header. ;)

    January 17th, 2011 @ 03:42 PM

  22. juju42
    juju42

    Hello,

    I'm using ubuntu 10.10 with libimobiledevice 1.0.7.
    As I have a problem with wifi on my iphone 3G w 4.1.2, I want to switch to 1.1.0 to make a full backup of the iphone before resetting it.

    I download package source for next ubuntu release (https://launchpad.net/ubuntu/+source/libimobiledevice/1.1.0-1) and build the packages with dpkg-buildpackage. It installed ok whereas 1.0.x is still installed but I don't know how to switch apps to 1.1.0
    uninstall 1.0 or adding env var ?
    local path makes 1.1 default but ...

    For now, I tried to make a backup but with same result than 1.0.x

    $ time idevicebackup -d backup 20110331-idevicebackup Backup directory is "20110331-idevicebackup"
    Started "com.apple.mobilebackup" service on port 49329.
    Reading Info.plist from backup.
    Starting backup...
    Reading existing Manifest.
    Could not read Manifest.plist, switching to full backup mode.
    Creating Info.plist for new backup.
    Requesting backup from device...
    ERROR: Could not start backup process: device refused to start the backup process.

    • ideviceinfo-20110331.log

    Any help ?

    Thanks

    March 31st, 2011 @ 05:48 AM

  23. Martin S.
    Martin S.

    @juju42: idevicebackup only works for iOS 3.x devices. For backup or restore of iOS 4.x devices you have to use idevicebackup4 from the similar named git branch. idevicebackup4 will be available in the next stable 1.2.0 release and is still WIP.

    March 31st, 2011 @ 10:18 AM

  24. juju42
    juju42

    Thanks for the reply Martin.

    was hoping 1.1.0/unstable contain this branch. so tried 1.2.0

    $ git clone -b mobilebackup2 git://git.sukimashita.com/libimobiledevice.git $ ./autogen.sh --prefix=/usr/local --enable-dev-tools && make $ sudo make install $ sudo dpkg -r --ignore-depends libimobiledevice2 libimobiledevice-utils libimobiledevice-dev libimobiledevice-doc $ sudo dpkg --ignore-depends=libimobiledevice1 -r libimobiledevice1

    after, idevicebackup4 seems to work with some error message:
    plenty of "Received an error message from device: Input/output error (5)"
    and some "Device is not ready yet. Going to try again in 2 seconds..."

    thanks for your work.
    do you need some logs about above errors ?
    Else, is restore command stable enough for use ?

    March 31st, 2011 @ 01:30 PM

  25. Martin S.
    Martin S.

    The errors are infact not really problematic and they come from the device. They are basically output because idevicebackup4 is in "development". Thanks but no need for logs, we can debug this ourselfs so far.

    Yes, restore mode works as we try that no commit breaks runtime functionality.
    However, the thing with the restore is, that even if the it might fail inbetween for whatever reason, it is rather safe to try as it only restores the files that were "correctly" transmitted to the device, then reboots the system.

    March 31st, 2011 @ 02:29 PM

  26. Piotr Wlodarczyk
    Piotr Wlodarczyk

    I have this with iPad 4.3.1:

    idevicebackup4 backup /media/usb0/ipad_backup1

    Backup directory is "/media/usb0/ipad_backup1"
    Started "com.apple.mobilebackup2" service on port 49852.
    Could not perform backup protocol version exchange, error code -5

    (I got libimobiledevice today by git clone -b mobilebackup2 git://git.sukimashita.com/libimobiledevice.git)

    April 11th, 2011 @ 03:00 PM

  27. Martin S.
    Martin S.

    @Piotr: The branch is a bit outdated and might fail with iOS 4.3+. I rebased it now on master which contains some important iOS 4.3 fixes. Please try again, for me it is working again on an iPad 4.3.1 just fine. You'll also have to force pull since I rebased the branch.

    April 11th, 2011 @ 05:57 PM

  28. Martin S.
    Martin S.
    • State changed from open to resolved

    Support for the new iOS 4+ backup protocol is ready and merged into git master and available in libimobiledevice 1.1.1.
    Both backup and restore operations are fully supported alongside a few other new operations using the new "idevicebackup2" tool.

    April 28th, 2011 @ 07:10 PM

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.