GPL v3    
2.3/5 18
iphone-usync is a software for automated wireless syncing with the Apple iPhone.




iphone-usync is a software for automated wireless syncing with the Apple iPhone. Primarily targeted to Linux/BSD users, uSync allows for automatic wireless syncing with the Apple iPhone. It is essentially just a couple shell scripts that interact in a sort client-server situation.

· Initiate syncing from the phone
· Receive new music/podcast alerts while away from the computer
· Fully automatic or manual syncing modes


1) Seamless SSH to and from the phone to the uSync server (pubkey, not password)

-- This is the absolute most vital part of the process. You will get nowhere

-- if uSync can't pass/get information to/from the server without interaction from the user.

2) The BSD Subsystem must be installed on the phone.

-- The current BSD Subsystem doesn't include 'du' (which is needed) so you'll need to

-- get it from http://wickedpsyched.com/iphone/unixtools/

-- extract it then copy the binary to /bin on the iPhone/iPT then chmod +x it.

3) You must have current Erica Sadun's utilites on the phone (available in Installer)

-- These include doAlert, doPrompt, doQuery, timedAlert, and playaudio

-- also make sure you have 'ed' installed (probably in /var/root/bin) -- it's required.

4) You must use the latest SVN revision of GTKPod and libgpod so that it recognizes the iTunes_Control directory correctly.

5) You must download and modify the latest GNUPod SVN revision.

-- Basically the only modification that needs to be made to the GNUPod source is to change every instance of 'iPod_Control' to 'iTunes_Control' cd to the source directory and do:

for FILE in $(find ./) ; do sed --in-place s:'iPod_Control':'iTunes_Control':g ${FILE} ; done

Then configure, make and make install normally. This will, however, make it ONLY work with an iPhone and iPod Touch. So if you have an iPod laying around that you want to use it on you might consider maintaining two separate versions.


Copy the uSync-Server directory to somewhere in your user dir. I use /home/me/.uSync-Server.

Now open the uSync-Server.conf file in the uSync-Server directory and fill in the data appropriately.

Open the uSync-Server.sh script and change the top line LOCAL_DIR= to point to where you've installed the uSync-Server directory.

Open the uSync.conf file in the uSync.app folder and read the comments. It shouldn't be necessary to define a network location yourself since uSync should do it for you when you start it the first time.

Now copy the uSync.app directory to /Applications on the iPhone. Make sure that the two scripts inside (uSync and uSync.sh) have execute permission.

launch GTKPod and add a new repository with model xiPhone1. For the mount point set it to the LocaliPhone directory inside the uSync-Server dir.

Now launch uSync from the iPhone (you can use the 'restart' command on the iPhone to restart SpringBoard or just reboot your phone to see the uSync icon). When uSync launches it will ask you to define a new location. The information you'll need is the username@IPAddress of your computer as well as the path to the uSync-Server directory.

After you set up the location it will try to connect. If it fails then make sure the information is correct in the uSync.conf file in /Applications/uSync and also that you are able to seamlessly SSH to/from the computer.

If you get "Would you like to sync?" then the connection was successful and now it's time to add some music/movies/podcasts. The computer will automatically download all the music/videos on the phone when it connects for the first time because uSync doesn't actually operate on the iPhone's files directly, but rather on a local "copy" in the LocaliPhone dir.

This "copy" gets synced back to the phone after you're done making your changes with GTKPod. This means that GTKPod will correctly handle artwork!

The local computer ONLY knows the iPhone's IP address if the iPhone sends it. That means that the very first time you start uSync on the phone it will send it's IP to the server. The server will then use this IP as long as it doesn't change. If it changes then you'll need to connect to the server again so that the IP is updated. Then you can sync manually again.

You can launch uSync-Server in two primary modes. The first is called with "uSync-Server -m" which will launch GTKPod for manual syncing. The other is "uSync-Server -a" which is used for automated syncing. This is the option that's called when you initiate syncing from the phone. It will automatically sync anything that's in the SyncDir directory.

You can call 'uSync-Server -n' which just moves anything in the NewFileDir to the SyncDir for syncing with 'uSync-Server -a'

You can't just launch GTKPod manually. You must use 'uSync-Server -m' because otherwise the iPhone will never get updated and your
changes will be lost.

It is recommended to turn of extended info support in GTKPod or you'll get errors galore when using both GTKPod and GNUPod to sync.

If you accidentally interrupt a sync by disconnecting from the network then you'll have a stale lockfile in /Applications/uSync.app/sync_lock. To fix this you'll need to remove the text "Locked" from this file (don't delete the file, just make it blank.)
Last updated on February 22nd, 2008

0 User reviews so far.