thursday, march 06, 2014
In August, I gave a talk at JailbreakCon, an annual conference that gathers together fans of jailbreaking and people who help make jailbreaking happen. This is a large and complex community: security researchers who develop the jailbreaks themselves, developers who make software for jailbroken iOS, designers who make themes for jailbroken iOS, repository managers (who host those software packages and themes), documentation and support forum helpers, bloggers and video makers, the three of us who work on Cydia as SaurikIT, and others. It’s pretty great to see each other in person, and to meet lots of other people who are into jailbreaking. (If this sounds interesting, JailbreakCon 2014 will be April 12-13 in the Bay Area.)
Instead of doing a typical JailbreakCon talk explaining something about security research or software development, I decided to look at the reasons why we care about those technical parts. Why have tens of millions of people figured out how to jailbreak their iOS devices and use Cydia, and why have hundreds of people spent money on planes and cars to talk to each other about these things in person? This is fascinating and exciting to me, and I’d like to convince you to be fascinated and excited too.
Here’s a video and a slightly-edited transcript for people who prefer reading. But the video might be entertaining; I’m pretty enthusiastic in it.
What I think is interesting to talk about is: why did you jailbreak your phone? Oh, I should introduce myself first; I work for saurik on community and support for Cydia. A lot of the time I stay a bit behind the scenes, but I moderate forums like JailbreakQA and /r/jailbreak (the subreddit), and I write some of the information inside Cydia.
So. Why did you jailbreak your phone? It’s sort of an obvious question. Usually people answer it with something like “I wanted to delete Newsstand”, or “I wanted quick-reply for text messages”, or “I wanted to toggle WiFi and 3G on and off more quickly, because Apple’s way of doing that is really lame”. These are very reasonable answers. But if you asked people a few years ago, they would have said: “I wanted to customize my wallpaper because Apple won’t let me”, or “I wanted to put apps in folders”, or “I wanted to record video”.
But these sound like entirely different reasons to jailbreak; there’s not much in common since the old reasons are part of iOS now. So, what’s going on with that? Do these reasons change all the time? Every time a new iOS version gets ready to be released, a bunch of tech blogs publish articles like this one:
They say, “Is jailbreaking dead? Is there any reason to jailbreak anymore, because all of the old cool features are now part of iOS?” But each jailbreak is more popular than the last one: evasi0n was even bigger than Absinthe, which was bigger than the ones before that. So something else is going on here, something strange.
My hypothesis is that even though you think the reason you jailbroke your phone was to get Five Icon Dock or WinterBoard — instead there was a more durable reason that hides in the background. I think this reason, at least for me, is to get access to this rich, complicated, hybridized primordial soup of software features. They’re not just the features and decisions that one company in California made, but this cornucopia of product decisions made by lots of people, such as the people in this room — with lots of conflicting and different ideas, like four or five different kinds of app switchers — which is awesome.
Something that I like, that most of you probably aren’t into, is fanfiction: where you take a TV show, or in this case an operating system, and you build new stories or new features on top of it, unauthorized. The quality of these stories and features may vary widely, and they may have conflicting plotlines — you have one TV show with sixteen fan stories that go off in different directions, or you have sixteen different features built on the same operating system with different ideas of how something should work.
And it’s really fun. People have these different visions of what software can be like. It’s creative, and it’s playful, and it generates a lot of good stuff along with the stuff that’s not so good. One company can’t cover everything that somebody wants out of a device. They can get to maybe 90% if they’re Apple, but there’s that last 10% of something that bugs you, or something that could be cooler, and jailbreakers are great at filling up that last 10% with awesome stuff.
We can take their pretty good operating system and write our own stories with their characters. We can fill in the missing scenes in Notification Center or the lockscreen, even if Apple wants to be the only person telling stories with this interface. Some of these features may be implemented by Apple someday, but there will always be new ones that we’ll make up, because you don’t run out of stories. A lot of them Apple will just never add, because they require extra battery or memory, or they’re confusing for ordinary people, or they’re just kind of goofy. Like this one, which is one of my favorites, called NyanSliders, where the sliders are Nyan Cats:
This should be animated; they do the little running dance as you change your volume. That’s cool! Jailbreaking is this big prototyping lab where we can experiment with what software interfaces can do, and how we can make them more fun. Instead of coming up with a concept in Photoshop, and everybody just thinks “that’s a cool way to do keyboards”, you can implement that feature right away. You don’t have to wait for Apple to maybe see your blog post, and maybe decide that it’s OK for them to implement it. You can do it right now, and see how it works. Like SwipeSelection, an alternate way to use your keyboard, which sounds kind of cool and kind of weird, and then you use it, and it’s interesting. It’s maybe not perfect, but it’s valuable to have this experimental attitude and experience.
That’s one reason to jailbreak! There are more reasons. I won’t list all of them, because I’ll be here all day. But one thing, that I think doesn’t get enough appreciation, is being able to turn off features in iOS. I maintain the featured packages list in Cydia, and one day we realized that we should have a special list of packages that start with “no”:
That’s NoCoverFlow, NoNewsIsGoodNews, NoPasscodeBlock, and NoStoreButton, and if you search Cydia for “no”, you’ll see a lot more of these tweaks that turn off annoying features that Apple doesn’t provide options to disable. Like “shake to undo” — a lot of people just find that feature irritating. And you can fix Apple’s default features that favor their own apps instead of App Store apps, such as BrowserChanger if you like Chrome, or MapsOpener if you like Google Maps, which makes a more level playing field. So that’s one set of reasons: you can add features and you can take them away, which is useful.
There’s a second reason that I find interesting, which is that you jailbreak because you can, because you should be able to jailbreak your device. To be able to use your phone as a general-computing device instead of a limited device, and to have the capability to do research on the software to verify that it does what Apple says it does, that’s cool.
It goes along with a third reason that is important to me: jailbreaking is a way to learn something, to explore a technical subject even for a lot of people who have no experience. These people can be frustrating — you have a lot of new people who ask…seemingly-dumb questions. But let’s say you’re a kid who doesn’t have your own computer, but you’re playing around with jailbreaking your iPod touch and asking questions about it, and you are on your way to learning something technical that you might not have had a chance to learn otherwise. This is great.
You end up learning this whole new vocabulary: what is a bootrom? What is a kernel? What are SHSH blobs? SHSH blobs are this complicated cryptography-related concept that millions of people are now dealing with on a regular basis — that’s amazing. When you open up iFile, the whole iOS filesystem is right there. Even a desktop computer will try to hide parts of the filesystem from you because it doesn’t think you can handle that. But in iFile, it’s there for exploring. You can even SSH into your phone and learn how to use the command line.
And if you mess up your phone, you can restore it. If you mess up your desktop computer, or your mom’s desktop computer, that is going to be a massive hassle, and it’s going to take you more than half an hour to fix that. If you restore your phone after deleting a system file, it’ll take you half an hour, and it’s kind of a hassle since you lost your jailbreak, but it won’t ruin your day. Well, maybe. But it won’t ruin your mom’s day, which can be important!
This educational reason might not be the first thing that occurs to people when you ask them why they jailbroke their phone. Nobody is going to say “I wanted to learn more about SHSH blobs”, but learning new things is a hidden and powerful reason that keeps people in the jailbreaking community. They can even start writing code without asking Apple for permission or paying Apple, which is great.
I see this on the forums that I moderate. Somebody comes in asking a “dumb” question, and a few months later you see them pop up again, answering a question about how to downgrade a baseband. You might be like “Whoa! Where did that come from?” — but that person has been learning and reading the whole time. It warms my little heart, and it’s a big part of why I work on this stuff. I like to imagine we’re training a whole secret generation of people who actually know how to tinker with computers.
So if somebody asks you why you jailbroke your phone, it’s probably still best to say “oh, I have this cool theme”, because if you try to explain all this, they might get confused and bored — but hopefully it’ll linger in the back of your mind that there are these deeper, more important reasons why we do this stuff and spend time with it.
I also convinced a few of the newer developers attending the conference to get up in front of everyone and give a series of two-minute talks after mine! Here we are among the other speakers:
comments are off. for new comments, my email address is email@example.com.