Psym Mobile

News and Development Blog


Abduction! 2 Music

One of the biggest improvements in Abduction! 2 is the sound. Not only are there loads of new and high quality effects, but there is great music as well. The composer recently posted a video showing off the music:

For other developers looking for someone to help out with music, I can’t recommend Chris enough. You can contact him via his web site here:


Some thoughts on LVL and obfuscation

There has been quite a bit of talk recently about the new Android licencing and how it might be easily and automatically stripped from apps. I’ve been thinking a little about this and how to obfuscate the use of the licencing to improve piracy protection. The way I see it there are two main aims – prevent any kind of automatic script so at least there has to be some manual work, and secondly to make that manual work as tough as possible.

I know very little about obfuscation and piracy prevention, so I’d appreciate any feedback on whether the approach below makes sense:

Prevent automated circumvention

As far as I can gather, the trick is to change the code to always give a positive licence verification result. Looking at the sample LVL code, it looks like you pass in a package name for licence verification. My suggestion is simple – as well as checking the licence for the app, occasionally also check the licence of a package that you know will fail. If that comes back as positive, you know the app has been tampered with.

By putting the licence check in more than one location, and building the package name dynamically, so that sometimes the same check should pass and other times it should fail, I think this would fool most automated scripts.

Make it a real pain to manually change the code

Assuming the above is a valid tactic, then there is plenty you can do to make circumventing it a real pain. Multiple checks throughout the code, each behaving differently, along with obfuscation would make it a more time consuming task.

Not immediately reacting to invalid licences would also help. Instead of displaying a message or just quitting when the licence is found to be invalid, if the app continues to work for a day or two (or a certain number of uses, etc..), then it’s likely that bad releases will find their way onto piracy sites, reducing users faith in them.

Again, please correct me if you have a better understanding of this issue, or if it can be further improved.


Zeemotes arrived

A couple of Zeemotes arrived in the mail yesterday and my first impressions are that they have great potential. In case you haven’t heard of the Zeemote, it’s a wireless (bluetooth) game controller designed for mobile phones. We’ve all played games on a mobile which could do with a real remote (Fire Helicopter comes to mind) but the idea of carrying around another piece of hardware for the purpose didn’t really appeal to me. However, five minutes with the Zeemote has changed my opinion completely.

It’s much smaller than you’d think and it can easily fit in your jeans pocket without being uncomfortable. Despite being small it’s comfortable to hold and has that nice soft plastic, almost rubberised feel. Inputs consist of an analog stick and four buttons, although two of them require a slight grip adjustment to press. Build quality seems very good, I can imagine it would come off no worse for wear after being dropped a few times.

I’ve only tried some sample apps so far, but connecting to the remote was simple and, after the first time pairing, very quick (1-2 seconds). The input is lag free and precise.

I’ll make more posts on this as I begin using the API and test integration with Psym Mobile apps.