iosjailbreakdetectioncydia

How do I accurately detect the presence and/or absence of a jailbreak in iOS?


After I attended a programming class, one of my friends showed me an app that would not allow him get past the first screen due to his jailbroken iPhone.

Since then I have been intrigued as to how the app was able to detect the jailbreak without being blocked by apple and, being the anti-jailbreak advocate that I am, I kept fruitlessly trying to find a reliable way to detect a jailbroken iOS device to prevent people from cheating if I ever decided to release a game on the App Store.

Does anyone know of a reliable method(s) to detect a device's jailbreak status that cannot be easily bypassed by said jailbroken device?

EDIT: based on recent comments, I would just like to clarify that the intention of this post is to share the knowledge I gained from finding that article, and to provide a place where other users can contribute their methods of jailbreak detection.


Solution

  • Blocking all jailbroken users probably wouldn't help you fight app piracy if you released a game on the App Store because it would force them to get a pirated version of the game to be able to play (instead of giving them the possibility to pay to play the game).

    What you'd want is to check if the game is a legit version off the App Store. But even that could be potentially patched by the guys who crack games to release them...

    You can check if the currently running executable is encrypted, which is a good way to know if the app has been pirated by looking at this answer.

    Otherwise if it's a free game with in-app purchase, doing receipt validation helps block out most tweaks that get around paying for in-app purchases.

    But there's definitely no way to absolutely block out app piracy.

    You could always mention how had you worked on that game within the game... That could convince a few persons to pay for the legit version of the game.