6

I jailbroke my iPad several months ago, and then could not open the Bloomberg app that I use for work. ("Device has been jailbroken.") I figured that work>jailbreaking (duh) and restored my iPad. I tried to open Bloomberg once more, and it said "Device has been jailbroken."

What does jailbreaking do that is irreparably detectable?

2
  • The true answer to your question is Nothing. Due to the nature of a jailbreak, lower-level calls can be hooked into and modified - something that an iOS application cannot do. What it basically ends up becoming is an app developer is trying to play hide-and-go-seek with an omniscient opponent that knows what moves you're going to make before you make them. There is a software package called xCon that circumvents most jailbreak detection. Commented Jan 15, 2014 at 4:09
  • Related: How can I tell if my iOS device is currently jailbroken? Commented May 10, 2016 at 3:31

3 Answers 3

5

As far as I know, only iBooks has the power to truly block a jailbroken device. It does this by writing an unsigned executable to the root of the system. If the device is locked (not jailbroken) it can't run. But if the device is jailbroken the executable is run and iBooks quits (crashes). But this is Apple's proprietary app and third party software isn't given this level of control. In fact, all third party apps are sandboxed and can't touch anything outside of their respective installation directory.

So what it's it looking for? Rumors claim it looks for Cydia. But again, that would require the app have access to the system as Cydia isn't installed in your user's installation directory (/private/var/mobile/Applications) but rather at the system root (/private/var/stash/Applications). And even if that were true, it would mean that once you wipe your jailbreak, it should work as expected. In this case, that doesn't look to be the case (unless it has saved the device state in the app's preferences).

But there is still one file that maybe it can access:

/private/var/mobile/Library/Preferences/com.saurik.cydia.plist

Additionally, this file is carried along with your backups whether the device is jailbroken or not once it has been created.

Either that or the app simply queried your device's state when jailbroken and has saved that information, carrying it over even after you removed the jailbreak (as mentioned above). However, if you've uninstalled and reinstalled the app after the jailbreak, then you needn't worry about that. But if you have any preference files left over from the jailbreak, you might have to clear them out. Either re-jailbreak and remove them via ssh or reinstall iOS but choose rather than setting up your device using a backup, start clean.

This doesn't look like the only app that checks for a jailbreak. Time Warner Cable and Skype both have a history of doing this. Unfortunately still no credible information on how they achieve this. Since they are bound to restrictive APIs like all third party apps in the App Store, I don't think it's all that sophisticated.

1
  • I had no idea apps had the ability "check" jailbreak at all, very interesting/unfortunate.
    – Zelda
    Commented Jan 3, 2012 at 4:04
-1

Im not sure if this is what is happening in your particular case however, as part of the JailBrake the 'hosts' file is altered so that the device will not contact apple for updates rather the JailBrake update site. I would search for articles which discuss how to reset the hosts file.

5
  • How does a regular application have access to the hosts file when not Jailbroken though?
    – tekknolagi
    Commented Oct 27, 2011 at 6:23
  • @tekknolagi Precisely. Firstly, apps can't touch the hosts file or anything at the system level; they're all sandboxed. Secondly, jailbreaking doesn't touch the hosts file.
    – user10355
    Commented Oct 27, 2011 at 6:46
  • Alright... how else, then?
    – tekknolagi
    Commented Oct 27, 2011 at 6:49
  • An app could try to contact the apple update server. The inbuilt tcp stack will check the hosts file for the associated IP address, which in the case of the jail brake would not be the appropriate one. This would rely on the application that is testing this to know which IP addresses are the correct ones. Commented Oct 28, 2011 at 13:10
  • -1 The hosts file in iOS is never touched during the jailbreak process. Also, there is no such thing as a jailbreak update site. Moreover, when your answer was written, iOS never checked Apple's update servers for anything. Commented Jan 15, 2014 at 3:57
-3

There are many ways to identify a computer/device. For example, your MAC address or UUID may have been blacklisted.

7
  • 3
    He's talking about identifying a jailbreak, not his device. BIG difference there.
    – user10355
    Commented Oct 27, 2011 at 6:47
  • 1
    We don't know why Bloomberg is throwing the error. It is possible his device was blacklisted, and Bloomberg is just repeating the error message.
    – iglvzx
    Commented Oct 27, 2011 at 6:50
  • 1
    How does it get blacklisted?
    – tekknolagi
    Commented Oct 27, 2011 at 6:51
  • 1
    @iglvzx Apps don't have the power to blacklist devices. Not only would that code be rejected, preventing the app's approval, but it would make little sense, from a financial standpoint as jailbreaking is NOT illegal and devices can go from jailbroken to locked states easily. To ban a phone outright for one violation is beyond draconian and not a very good position to adopt, from a business standpoint.
    – user10355
    Commented Oct 27, 2011 at 7:13
  • 1
    *Sorry. I mean IP address.
    – iglvzx
    Commented Oct 27, 2011 at 7:31

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .