Jailbreak Status — iOS 8
Thanks to the team over at Pangu we have a functioning, relatively stable jailbreak for iOS 8 much earlier than anyone expected. It’d be cool if you served your site & 25pp downloads over SSL/TLS though guys ❤.
Given how little chatter there was around who was developing the new jailbreak, who wasn’t, what exploits had definitely been closed by the new firmware and so on the early release of a new JB caught almost everyone by surprise, so genuine credit to the Pangu team for getting it out there so quickly. They even received the Saurik seal of approval just before the start of last week.
A new jailbreak also kicks me out of the iOS slumber I was in for a while. I am by no means anyone important in the Jailbreak ‘scene’, at all, but I have put out a few things over the past year and have a few plans going forwards.
Note — In terms of code, everywhere below that code appears presume all the long single dashes (—) and actually two x (-). Medium likes to kill code by assuming by two dashes you actually want one long dash.
So, Existing Projects:
M’Flat Enhanced — Will be updated in the next couple of weeks, primarily to fix some of the icons broken by naming changes in the past few months. I will possibly also fix the settings theming so the `Display and Brightness` and `Touch ID` buttons have icons.
As for iOS 8 support: Most of it already works. I will endeavour to fix the clock icon which Apple have made tediously difficult to theme for iOS8, but I make no promises. M’Flat Enhanced will receive one last semi-major update for iOS 8 though, to ensure support remains intact for iPhone 5S and below devices. It remains compatible with iOS 5, 6 & 7. It exists on my Github if people want to fork it and contribute long-term.
Clear Sans — Will be updated. It needs a total do-over for iOS 8 due to kerning changes in the stock fonts and related developments, but it will be done, hopefully within the next fortnight. It also exists on my Github.
That’s the existing stuff. Moving forwards:
I’m reasonably excited to have finally kickstarted my Homebrew support for Jailbreak Tools project, which you can find here. Essentially, It has long been a bit of a pain to get started with jailbreak development.
You have to locate various Gits, clone things into the right directories, set everything up, keep track of what you have installed or not and more often than not frequently ssh into your iDevice and pull the libraries out to drop them into the $THEOS directory for development.
I want to take away a lot of that pain. I want starting development to be as easy as a one-liner in a terminal, and this project is the start of that. Homebrew is an incredible tool, one that has a ton of power behind it but at the same time does a great job of hiding a lot of those mechanisms from the end user, so things just work. (Most of the time).
I am harnessing the power of Homebrew to try and deliver that environment to developers, to users, to people who just want to explore. I truly hope people find it useful.
Once you have Homebrew on your system, getting access to my tap is as easy as doing `brew tap DomT4/homebrew-jailbreak`. That’s it. From there you can do `brew install theos` and less than a minute later Theos, complete with Substrate and ldid will be on your system and configured ready for use.
Now, Disclaimer: Jay (Saurik) could murder a big part of this project any time he wants. Substrate itself is closed source, and Jay has every right to flatten me for redistributing the library. I am hoping he doesn’t, based on his full-time moderator, beetling, at /r/jailbreak regularly pointing people towards the iPhoneDevWiki which I believe she contributes to herself, which instructs users and developers to pull that Substrate library from their iDevices for dev purposes.
I have tried to reach out to Jay before to discuss this, amongst a few other related issues but I haven’t received a reply to date. No hard feelings on that though, I completely understand Saurik is overwhelmingly busy and probably gets hundreds of emails every day. Frankly, the guy works hard enough to deserve to ignore as many of those emails as he chooses.
But if worst comes to worst and Jay demands I stop supplying easy access to that library, it’s not the end of the world. It makes things more painful, but it’s not an end-game. An end-game would be Dustin suddenly relicensing Theos.
Now, the real power of this Brew-backed system is extensibility. This goes back to my desire to offer a one-line solution to the problem of finding project’s git repositories, pulling libraries from your iDevice, and so on. This is where Brew is useful in particular. You want to develop a new Flipswitch toggle using Theos for example?
Well, instead of hunting down the Flipswitch library, public headers, putting them in the right directories and renaming things where necessary simply do `brew install theos —with-flipswitch`. Done. Headers and the library is installed where Theos expects to find them.
Right now, adding or removing options means recompiling the formula. It’s not a huge huge issue, because Theos is a 60 second install tops, and no unnecessary options are downloaded unless you trigger them, but it’s an issue I’d love to find a better solution to in the future.
Lost track of what libraries you’ve installed? Or what libraries are available to install? `brew info theos`.

As easy as that. Right now, I’ve just set up the basics — You can install either Dustin or Ryan Petrich’s Theos, and will get ldid and Substrate installed automatically in the right place with that. Flipswitch is an optional library which you can trigger with the `brew install theos — with-flipswitch` command. Unless you trigger that command, flipswitch doesn’t touch your system.
Flipswitch is permissively licensed and allows redistribution. I’d like to include Activator support imminently as well, but Ryan hasn’t explicitly specified a license for Activator yet as far as I’m aware. But essentially, with the right license permission or exemptions in place, the module flexibility is endless.
I’d love to support more than just Theos going forwards. I’d like to support a whole variety of Jailbreak tools and utilities, where licensing permits. Homebrew is nearly limitless in its power; If you want to install command-line tools? Easily done. If you want to install pre-built app bundles on OS X? Easily done. If you want to build a jailbreak utility OS X app from source code? Easily done. Even if those things have dependencies, that support can be written in with relative ease and comfort.
I’m not claiming I’m in any way special for pushing ahead with this. I’m not, at all. Anyone could do this, the level of code knowledge required is pretty low, and getting to grip with Homebrew’s fundamentals doesn’t take too long. But I hope people like the idea, and see a use for it, and developers offer their support and libraries.
If it all falls apart I’ll go back to hunting down various individual gits and cloning and building and moving into place and so on, but I hope people find it useful and see a purpose for it.
Much love to the community, and to those who make development possible and enjoyable.
Dom