Sync Game Data Across iOS Devices

Over the past several weeks, I have spent countless hours playing Angry Birds on my iPad. Surprisingly, playing this game led me to discover a new reason to be glad that I had jailbroken my iOS devices.

The game

Angry Birds is a devilishly simple game with 150 main levels. In each level, your goal is the same: to destroy an assortment of cartoon pigs. You accomplish this goal by hitting the pigs with birds that you launch via a slingshot. Beyond destroying the pigs, to get the highest possible scores, you’ll also need to take out the various blocks that surround and protect the pigs — and do so with a minimum of birds. After spending an embarrassing amount of time playing the game, I racked up an impressive collection of high scores across all levels. Still, I continue to enjoy trying to best my prior scores.

The problem

This all worked well until I found myself out in the world one day with my iPhone and some time to kill. What to do? Play Angry Birds of course. As it turned out, this was the first time I tried playing it on my iPhone. I immediately discovered that the scores and level completions that I had obtained with so much effort on my iPad (which was now relaxing on my desk at home) did not carry over to the iPhone. I can’t say this was a surprise. In fact, it was what I expected given my general experience with iPhone games. However, I was still disappointed. The lack of carry-over from my iPad meant I was locked out of playing all levels of the game except the lowest one.

Initially, I held out hope that there might be some easy way around this roadblock — some way that the app could sync data across my varied iOS devices. In theory, this was a possibility, as other apps can do this — if you log into a syncing account. And Angry Birds did support limited sharing of scores and achievements via a Crystal account service. But alas, this did not allow me to share my level completions across my iOS devices.

The solution

Was there anything I could do? Yes! As both my iPhone and iPad had been jailbroken, I had root access to both of their drives. This meant I should be able to locate the files containing the relevant game data for Angry Birds on my iPad and transfer the data files to the Angry Birds app on my iPhone. As the app itself is identical on both devices, I figured this would work without any hassles. I gave it a try. It did work!

If you want to do this with Angry Birds on your iOS devices, here’s what to do:

1. Assuming your iOS devices have been jailbroken, launch a Mac OS X utility that offers root access to the drives on these devices. My preferred choice is DiskAid (as I covered in a previous article).

2. Connect the device that contains the game data you want to transfer (the iPad in my case) to your Mac and wait for it to appear in DiskAid.

3. Click the Root item from the Folders section in the left column. When asked “Do you know what you are doing?,” click “OK.” You’ll have to agree to this even if you aren’t entirely confident that you know what you are doing.

4. Navigate to var > mobile > Applications.

5. Now comes a potentially tedious step: Finding the game app on your device. Exactly how tedious depends on how many apps you have installed. The tedium results from the fact that DiskAid has no Find feature.

Each app on your device (except the ones that are preinstalled) has a corresponding folder in this Applications folder. Each folder, in turn, has a name that consists of a long string of hexcode. The hexcode offers no clue as to what the app is. Unless there is a trick that I am unaware of, you’ll need to click each folder until you locate the one that contains AngryBirds.app.

Tip: Once you find the desired folder, record its hexcode name for future reference (although be aware that the name may change after updating the app to a new version).

6. Drag the Documents folder that is located within the Angry Birds folder (as viewed in DiskAid) to your Mac’s Desktop. This copies the Documents folder to your Mac.

7. Disconnect the iOS device from your Mac.

8. Connect the iOS device that you want to receive the game data (the iPhone in my case) to your Mac. Using DiskAid again, follow the same procedure as described in Step 5 to locate the Angry Birds app (it will have a different hexcode name than it did on the prior device!). Once more, you will see a Documents folder.

9. Return to your Mac’s Desktop and open the Documents folder you copied from the iPad. Drag all the items from that folder — except the crystal_themes folder — to the Documents folder on the device currently displayed in DiskAid. When asked if you want to replace the same-named files that are already there, say OK.

Note: You could copy the entire Documents folder. But the crystal_themes folder is not involved in maintaining your scores and thus can be omitted.

10. Disconnect the device. Your work is done. Launch Angry Birds on the second device (the iPhone in my case). All of your scores from the first device will have been successfully transferred.

Tip: Save the Documents folder on your Mac as a backup. This will be useful if you ever lose the game data on your iOS device(s) — perhaps as a result of an uninstall of the app or of a restore of your iOS device.

Beyond Angry Birds

Will this solution work for games other than Angry Birds? Yes. It should work with almost any game that saves your high scores. However, the exact details of what needs to be copied may vary a bit. As one example, I attempted the same procedure with another of my favorite games, Peggle. It all worked exactly the same way — with one minor exception: I needed only to copy the userdata folder inside the Documents folder.

Glitches?

I played Angry Birds on my iPhone for several weeks after transferring the game data from my iPad. It worked perfectly — not even the slightest hiccup. The only time I had any problem was after updating to a newer (1.3.3) version of the game:

• Immediately after updating, the game failed to launch on my iPhone. Eventually I had to completely delete the game from both my Mac and iPhone, download a fresh copy, and reinstall it. After that, all worked. In any case, I am not convinced this is an inevitable consequence of the data transfer. In a similar situation with another iOS device, I had no problems at all.

• Angry Birds on the iPhone froze in the “Golden Eggs” screen at one point. I quit and relaunched the app — and never had the problem again.

Overall, these glitches seemed a small price to pay for the benefit of being able to transfer my scores across devices.

The jailbreak question

At this point, I suspect that many of you are still hesitating over Step 1; the part where you need to jailbreak your iPhone and iPad. This is an essential step. Without doing it, DiskAid cannot provide the needed access to the relevant Documents folders.

Is it safe to jailbreak your device? Is it worth taking this risk? Prior to the release of iOS 4.0 and iTunes 9.2, I could unequivocally answer “Yes.” With tools such as Spirit, it is incredibly fast, simple, and even safe to jailbreak. Further, once you’ve done it, you don’t need to do anything more — such as download arcane jailbreak-dependent software — to accomplish the solution described here. Just launch DiskAid and you are on your way.

Unfortunately, with the releases of iTunes 9.2, iOS 4 and iPhone 4, the rules have changed. As has consistently been the case whenever Apple introduces new iOS-related software or hardware, Apple made changes that prevent pre-existing jailbreak methods from working. This means that, currently, there is not an easy and reliable way to jailbreak devices running iOS 4. As far as I know, there is not yet any way to jailbreak an iPhone 4. Even with a device running iOS 3.x, you may have problems jailbreaking if you are using iTunes 9.2 on your Mac.

Indications are that this is likely to change soon (the dev-team blog is a good place to check on the latest developments). Until then, the technique described here must unfortunately be placed on hold for anyone using the latest iOS and iTunes software.

This is why I wish Apple would take a less severe stance towards jailbreaking. Some writers have suggested that Apple maintains an attitude of benign neglect here — allowing jailbreakers and their supporters to play in their small sandbox largely unhindered. I only wish this were so. Apple has been, and continues to be, aggressive in its attempts to block all jailbreaking. The only reason that jailbreaking still exists is that, so far, jailbreakers continue to find ways to circumvent Apple’s best efforts. In my view, Apple should opt out of this cat-and-mouse game. But I honestly don’t see this happening.

I understand that the technique I described here may not be for everyone. Some may be unwilling to risk even the slightest chance of having problems that might result. Others may be hesitant to delve into the root level of their iOS devices under any circumstances. Still others may object to jailbreaking on principle. But for those who don’t fall into these categories, jailbreaking offers the opportunity to significantly expand what you can do with your iOS devices. Game data transfer is just one such example.

To figure out what folders contain what apps, I use iFile from Cydia on my phone to figure this out. iFile somehow deciphers the numbers, and shows you the name, as well as the number. Once you have the two associated, you can use the desktop app to negotiate to the proper folder, and play.