AngryBirdsNest: How to Transfer Angry Birds Data to Another iPhone or Mac
One of the various flaws in the iPhone ecosystem is actually a rather large feature hole. The folks at iPhoneExplorer give me the tool to help fill this hole while the guys at AngryBirdsNest helped me by giving you a solid case study.
While personally thrilled I don’t have to re-three star a bunch of stuff in Angry Birds, I think that there’s a huge exploit hole here.
The Feature Flaw: it’s all around data. When you do a backup/restore from an iPhone you get everything backed up and restored – remember this, because this is important – which is a very elegant solution to a complicated problem. In fact, I’ve given Apple many bits of praise for their backup story because it works across version and devices… makes it easy to retain your settings if you ever need a replacement device or upgrade.
The Real Flaw: over the last three months I’ve become increasingly frustrated by the simple fact that I cannot make or receive calls with my phone. Or whats worse is that when the call goes through and doesn’t drop after 60 seconds, people tell me they can’t hear me. I hear them crystal clear; they can’t hear me at all. Which is funny since most people will tell you they can hear me up to half a mile away without needing a phone. *drum*drum*cymbal* My local volume is likely not the problem but getting it over the wire is. While I was on a Windows Phone – on the same network – I did not have an issue with calls dropping or being heard either on the handset or the BT headset. Made an appointment with tech support at an Apple store and got them to swap the handset: same issue came back to life once I left the store.
The Really Flawed Solution: Apple’s suggestion to me – and to any other breathing mammal that has a problem with an iPhone and approaches the Genius Bar – is to “simply rebuild the phone!” This is complete and total bullshit. If I wanted a phone that I had to strip down and rebuild on a monthly basis, I would have kept my Windows Mobile 5 phone. That had enough features in the core OS that I didn’t have to add any apps – I could (and would) rebuild that phone in 15 minutes. To rebuild my iPhone… well, I’ve got to have at least 80 apps on the damned thing and there’s no way to backup the data that these apps are using. Sure, the whole device backup has them but Apple is actually telling me that that backup is no good: that there’s a bug/issue/glitch in the phone’s software that is causing me call/audio issues and that can only be fixed by a fresh copy of iOS. If I restore from a backup, I’ll be pulling that bug/issue/glitch forward with me.
Every time they suggest The Really Flawed Solution, I simply reply, “You want me to purposely blow away my Angry Birds game data?” This usually makes the tech pale for about 4 seconds before s/he hangs hir head in empathy. And that doesn’t even bring up things like Lego Harry Potter, WSOP, or Phoenix Wright. Like why do I have to different saved games on Lego HP? Why do I have to start from scratch if I buy Angry Birds HD?
Here’s where things get even more interesting, from a technology point of view.
When an Apple application stores file-based data, it puts it in the Documents folder that’s within its installed application folder. For every icon you see on your iPhone, that’s actually representative of a folder – SOMEPITHYNAME.APP – in the local storage. Within that, there’s a Documents folder that’s used for application store be it a EPUB book for iBooks, an Amazon book for Kindle, an MMC file for iMediaMan, or random saved game data. In the case of Kindle and iMediaMan, those applications have a bit set that exposes this folder to iTunes, while your iPhone is syncing. Know how you can move a book to and from your HDD while in iTunes’ Application tab? You are working with files in this Documents folder.
Since most games don’t allow you access to this feature in iTunes – keeping it simple? Likely. – you can’t simply copy your saved game data off the phone. Instead you use a tool like iPhoneExplorer, which will show you your entire device’s installed folder tree. In the case of Angry Birds (and the tutorial at AngryBirdsNest) you can navigate to the Angry Birds directory and copy out the highscores.lua file to your Mac/PC. From there, you can move that file to any installed Angry Birds instance on OSX or iOS (or maybe PC or Android?) and your progress will go with you. Same thing was true of Phoenix Wright. WSOP didn’t have as elegant of a solution; I tried to copy their entire documents directory to a new instance but it didn’t take. In all of this, there’s no Jailbreaking and no DRM issues: the applications are already installed and you’re just working within the design of iOS.
While one solution to The Feature Flaw would be to have the games flip the bit in iTunes and allow the transfer of files in the Documents directory to and from a Mac/PC, thats… well, that’s not a good either. That leads to:
The Even Bigger Feature Security Flaw: Since I was able to move the file over and it “just works” I’m thrilled but then my Xbox LIVE mindset kicked in… did I just find a way that I could take any highscores.lua file from anyone and use that on my device and with my Game Center account? I think I just did… I think that if someone send me a fully three starred lua file that I would be able to put that on my phone and Lo! Game Center would bombard me with achievements for Angry Birds… and this is a huge security hole. Huge. It doesn’t matter that I would want to do such a thing, but after having an Xbox LIVE account for over 6 years – and worked on the platform for 4 years – I know that there are people that try to “work the system” on a daily basis. It’s the whole reason why Xbox LIVE has a policy enforcement team in the first place: if you leave any online community unmoderated and you’ll have huge social and security issues. Always. It’s a universal truth. It could be my thesis because I’ve been in an online group of one form or another for over 25 years now… it’s a constant and endless cycle, best summed up best by Penny Arcade.
Sure enough, I popped open Game Center and wandered over to the WSOP Leaderboard: #1 player (gsour) has 8,943,022,960,051,062,433 chips… No lie – I’ve got it right in front of me. That’s the real number. Total hack job. On top of that, I’ve got a ton of WSOP achievements but if I try to play the game, I’m starting from the initial bank roll. Pose this to any Xbox LIVE (or PSN) user and they would spend the rest of the day picking gray matter off the wall, because their head would explode. Lose your game data? Lose your achievements? Because you brought your profile to another console? hahaha! Would never happen. It’s a problem that was fixed all the way back to Dreamcast and PS2. Even the NES stored content on the game cart. And once the “soccer mom, casual gamer doesn’t care about such things” starts to play they become a Gamer. End of story. In fact, because they are casual they will have even less tollerance for this type of thing than a hard core gamer would. I jumped through many hoops to get my game data back – Jolene would not. She wouldn’t even want me to spend that kind of time to do it for her. “The data is gone? The screw that, I’m not going to play that anymore. That’s dumb.”
So what have we learned? That the backup/restore feature of Apple has a feature hole. That Game Center has a few issues: it’s a complete free for all for gamers that want to abuse the system for points, there’s no way to restore your progress in games that you’ve got achievements for, and iOS (and OSX) has no real way to support saved games at this time (and if they do, they can’t secure it.) That all of this was caused by Apple’s support requiring me to rebuild the phone, to fix phone call issues.
At least I got to keep my Angry Birds progress from the last year of game play.