Introduction

This technique allows you to sync using the official iTunes application. All functionality is available except restore and most probably firmware updates.

  • Info <!> DO NOT use step 4 of this guide for Ubuntu Maverick Meerkat 10.10 and later! Instead follow the instructions at: https://help.ubuntu.com/community/VirtualBox/USB

    Info <!> This method uses a number of proprietary components, and therefore isn't free. Do not do this unless you have a legitimate Windows license and agree with the licensing to all the software: Windows XP, Virtualbox etc.

This information is sourced from a number of locations - thanks to these contributions:

Steps

  1. Add the Virtualbox repository and key as detailed on this page. Select the repository matching your distribution and add to /etc/apt/sources.list file. For example, the Intrepid Ibex line is:

    deb http://download.virtualbox.org/virtualbox/debian intrepid non-free 

    Now add the key for this repository.

    wget -q http://download.virtualbox.org/virtualbox/debian/oracle_vbox.asc -O- | sudo apt-key add - 

    Now update your apt cache:

    sudo apt-get update
  2. Remove the package virtualbox-ose:

    sudo apt-get autoremove virtualbox-ose 

    Now install the latest Virtualbox

    sudo apt-get install virtualbox 
  3. Add your username to the vboxusers group. Don't forget to substitute your username if it's different from the logged-in user:

    sudo gpasswd -a ${USER} vboxusers 
  4. We need a new entry in the file '/etc/fstab' to correct USB permissions. To do this, first you need to know what the group id (GID) is for the group vboxusers. Run this command:

    sed '/vboxusers/!d;s/vboxusers:x:\(.*\):.*/\1/' /etc/group

    The output should be a number. Now edit /etc/fstab and add the following line, but make sure you set the devgid= number to the output of the previous command.

    none /proc/bus/usb usbfs devgid=123,devmode=664 0 0 
  5. Log out of your session and log back in. You can now start up Virtualbox, located under ApplicationsSystem ToolsOracle VM Virtualbox . Create a new machine; the wizard will guide you, the details are outside of the scope for this howto. Within the settings for the machine, ensure both "Enable USB Controller" and "Enable USB 2.0 (EHCI) Controller" are ticked. You can also add a filter to make the iPhone/iTouch automatically pass thru here, otherwise you will have to manually select and enable it when plugged in.

  6. Install Windows and iTunes in the VM. Windows XP and iTunes 8 is known to work. The Virtualbox guest addons are also recommended for performance and integration, but are not explicitly required. Again, the details of this are outside of scope, but are straightforward.

7. Boot the VM, plug in iPhone (and select it to be passed thru via the VM menu if you didn't add a filter before) and confirm iTunes detects it. All systems go for iLaunch!

Note: I (JIMIneitor) tested this myself, and tested everything, even restoring, and I can say that everything works excellent but restoring, you can sync, back-up, install apps, remove apps, everything, but you won't restore it using VirtualBox.

Troubleshoot

iTunes error 0xe8000035

Windows sees the iPhone correctly, and attempts to download pictures, but iTunes doesn't connect correctly. One cause of this is MAX_USBFS_BUFFER_SIZE being too small in /drivers/usb/core/devio.c. The author had this problem in Hardy Heron. Here is how to recompile "only" this module for Hardy (thanks to remainder comment 2008-09-21 04:22:26):

cd /usr/src
sudo apt-get build-dep linux-source-2.6.24
sudo apt-get install linux-source-2.6.24 build-essential
tar -jxvf /usr/src/linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24/drivers/usb/core
sudo perl -pi.bak -e 's/16384/131072/' devio.c
make -C /lib/modules/`uname -r`/build/ M=`pwd` modules
strip --strip-debug usbcore.ko
sudo install -m644 -b usbcore.ko /lib/modules/`uname -r`/kernel/drivers/usb/core
sudo depmod -ae
sudo update-initramfs -u
sudo reboot

You could instead modify /drivers/usb/core/devio.c and recompile the whole kernel if you wanted to. Note that this error can also occur for lots of other reasons, including bad cables, 3rd party docks etc. Ask Google about this error for lots of other possibilities.

VM Locks up at boot

The VM seems to lock up at boot if an iPhone is plugged in at boot time. Try booting without the iPhone plugged in!

See Also

PortableDevices/iPhone/iTunesVirtualBox (last edited 2014-02-19 00:19:10 by machina-13)