Although I usually backup (with TitaniumBackup) my progress in the games I occasionally play in my rooted Nexus 4, lately I was quite lazy about it, so when the latest upgrade to Angry Birds StarWars crashed and I lost all the data it was almost two months of game progress. That was the whole Hoth system… I was not going to repeat the 40 levels, so I would have to fix it myself. Using adb I enter the
/data/data/com.rovio.angrybirdsstarwars.ads.iap/files folder, where the file
highscores.lua is stored. I remembered that in the first version of the game the file was just a plain text file with your scores in each level you have played, but it seems that Rovio does not like people improving scores so easily, so they changed it to make things more difficult.
I decided to debug the game in order to check what was exactly that file. I installed the Android NDK and learn how to use the gdb remote debugger. Disassembling the binary showed that that they were using AES with a secret key. More
ndk-gdb and lot of learning and I got it!
some python coding, and I was again just after Hoth. It took me about 6 hours to learn enough to fix it, quite less than the two months it had taken me to finish the Hoth system.
I would never use this kind of hacking to skip a difficult level, but replaying a whole system … no way. At the end, lot of learning and satisfaction for being able to fix it.