The Jailbreak-iBooks Conflict is Over

In the comments at the end of my previous column on jailbreaking, I stated: “I have never had even one reliability or instability or whatever issue with my jailbroken iOS devices.” This is no longer true.

This week, I discovered that I could no longer open DRM-protected content in Apple’s iBooks app on my jailbroken iPad. Actually, I did not discover this myself, as I rarely use iBooks at all. Rather, I read about the problem online and confirmed it in my own testing. When I tried to open a book, an error message popped up that said: “There is a problem with the configuration of your iPad. Please restore with iTunes and reinstall iBooks.”

iBooks error

This error occurs on any jailbroken iPhone 3GS (with the new bootroom) or newer iOS device. According to some reports, it only happens after updating to the latest 1.2.1 version of iBooks (other reports claim it happens with older versions as well). There is no problem whatsoever if you haven’t performed a jailbreak.

More accurately, I should say “This error occurred on any…” As of today, there is an easy fix for the problem. I tried it and it works. I am now once again able to view DRM iBooks content on my still-jailbroken iPad — with no error message popping up.

If you have a jailbroken iOS device (probably jailbroken via GreenPois0n) that shows this error, you have a choice of two fixes. The tedious fix is to rejailbreak your device. This requires that you first restore your device via iTunes to pre-jailbreak status (which eliminates the conflict). Next, rejailbreak it with Pwnage 4.2 (which avoids the conflict). The quicker fix is to launch Cydia on your jailbroken device and add the repo.insanelyi.com repository in the Sources section. Next, locate and install “iBooks Fix.” With this latter fix, you avoid the hassle of restoring.

A deeper look

What exactly was going on with this iBooks error? And what does it imply about the ongoing battle between Apple and hackers over jailbreaking?

The specifics of the iBooks problem, as noted by comex, were that “It seems that before opening a DRMed book, iBooks drops an improperly signed binary, tries to execute it, and if it works concludes that the device is jailbroken and refuses to open the book.”

Some blog postings were alarmist in tone, claiming that Apple “deliberately crippled” iBooks so as to “screw” jailbreakers. I doubt this is the case. If Apple’s intent was to screw jailbreakers, this was a pretty lame way to do so. Most jailbreakers would never even see the problem, as they (like me) probably almost never use iBooks. The error doesn’t even show up when you use iBooks, unless you choose to view DRM content. If Apple had implemented a check that prevented jailbroken iOS devices from booting, that would qualify as a “screw.”

More likely, the iBooks check is designed to ensure that DRM content remains secure. It checks for anything you may have done to your iOS device that might be used to bypass copy protection. In this regard, a similar iBooks-jailbreak conflict has occurred at least once before (see this article from June 2010).

More generally, there is a way for the iOS to check if a device has been jailbroken (although I suspect it is far from perfect). However, as of last December, Apple supposedly disabled the use of this API. In any case, there is no evidence that Apple has ever used this check to “cripple” a jailbroken device.

Bottom line

For many of you reading this article, I can already imagine your most likely response to this matter: “There’s a simpler and better way to avoid these hassles: don’t jailbreak!” True enough. But for those who prefer to travel down the jailbreak road, it’s good to know that this latest problem was just a tiny bump rather than a huge pothole. You’re once again good to go (at least until iOS 4.3 is released!).