I was all set to give this week's column over to a new register-direct implementation of a JavaScript interpreter that's many times faster than all currently available implementations. It's not exactly growing hair on a billiard ball, but a nitro-boosted JavaScript will put a shine on AJAX and keep my most beloved language on track to becoming the gold standard for dynamic languages.
Apple decided to nix that story in favor of yet another iPhone piece, this one to celebrate the short life of a project that opened the iPhone and the iPod Touch Unix to developers. The keepers of the project are responsible for its demise, because they made it impossible for Apple to discern between innocent developers looking to create an unencumbered open source community on Apple mobile hardware, and those who want to force Apple to break its exclusivity deal with AT&T.
Up until a couple of days ago, it was possible to develop software for iPhone 2.0 devices (the iPhone, iPhone 3G, and iPod Touch running 2.0 firmware) without the encumbrances of Apple's onerous developer contracts and code-signing requirements. A very tidy iPhone 2.0 app called Cydia set up an App Store equivalent for open source developers and those interested in sampling their wares. With Cydia, there's no credit card required, no tracking of who had downloaded what, and no restrictions on the capabilities of applications.
[ For all the latest developments on Apple's iPhone, see InfoWorld's special report ]
Open source software for iPhone 2.0 is produced and traded within a relatively small community that, in the majority, exemplifies the commandments of ethical hacking: Don't create victims, don't take money out of anyone's pocket, and make sure that the community's influence stays within the community. In other words, no malware, no piracy, and no infiltration among the nonsavvy. If you keep to these rules, a community of hackers will generally be tolerated. Apple has quietly allowed open source iPhone development since the original iPhone was introduced. The community was gaining ground and respect. Books have been published, and one iPhone open source community leader addressed an SRO crowd at no less than an Apple Store.
Wherever treasure is unearthed, pillagers gather. iPhone open source development was enabled by a pre-SDK project to "jailbreak" iPhone 1.x firmware so that user-created iPhone applications could be installed and run. This required changes to the firmware, but it could be done without redistribution (Apple makes it freely downloadable). After jailbreaking came research into unpublished APIs and into the extent to which POSIX APIs were supported.
Open source development got under way in earnest, but for some of the people who undertook it, the jailbreak project was a stepping stone toward the ultimate goal of unlocking iPhone for use on any carrier's network. This was primarily a reaction to Apple's U.S. exclusive with AT&T. I'm not crazy about that either, but hackers need to understand that Apple is contractually obligated to keep iPhone owners locked to Ma Bell's network. That means that Apple has to attack well-publicized efforts to unlock its device until its deal with AT&T expires.
iPhone unlockers recently issued a foolhardy boast that put them on the front page. They claimed that they had successfully unlocked the first-generation iPhone, using nothing but software, in such a way that Apple could not relock the device to AT&T. A Mac utility called Pwnagetool gave nonsavvy users a foolproof means to jailbreak and carrier-unlock their first-gen iPhones running 2.0 firmware.
I ran Pwnagetool on my iPod Touch because I needed a secure shell (SSH) client for use on my wireless LAN. There is no cellular radio in an iPod Touch, so unlocking doesn't enter the picture. The tool is easy. Cydia pointed me directly to the open source package I needed, which turned out to equip the iPod Touch with an SSH server as well. Yup. The iPhone open sourcers can run background processes on your iPhone. It's fun to SSH into an iPod and run a shell session, but I found reaching out from the iPod Touch to my servers far more useful.
Apple's 2.0.1 firmware update accomplishes what hackers had claimed Apple couldn't do: It relocks an iPhone to AT&T. The original boast was predicated on the fact that through all of its prior updates, Apple had never updated the baseband (cellular radio) firmware. Well, 2.0.1 breaks this tradition, and it breaks unlocking.
Apple's iPhone 2.0.1 firmware also breaks iPhone open source development. My iPod Touch, which never made any trouble for AT&T or Apple, and never cost any App Store vendor a dime in lost sales, won't run Unix apps any more. I'm back to hauling a notebook around when just my iPod Touch would do.
Maybe the iPhone open source community will hack the iPhone open again. In the meantime, it's still possible to operate an iPhone or iPod Touch with open source jailbreak by avoiding the 2.0.1 firmware update, but as it does with iTunes, Apple is adept at turning voluntary updates into a practical necessity by making related products dependent on the latest update.
There is an amicable way out of this. The best thing for all concerned would be for Apple to enable iPhone 2.0 open source development and the running of unsigned applications (such as shell or Python scripts), but only for device owners who explicitly consent to it. I'm all for protecting users from unwittingly welcoming nonpedigreed software into their iPhones. I'll be big about it and set aside the fact that an Apple-issued pedigree doesn't make software run any better.
An open source iPhone community benefits Apple by turning the iPhone into a platform in the Mac sense of the term, and this isn't at odds with Apple's App Store venture. Yes, iPhone unlockers spoiled the party for everybody. But Apple can lock out the unlockers while letting the iPhone open source party go on.
Yeah, imagine if this got a little further. Imagine if linux ran on the Iphone/Ipod Touch. It would overcome platforms like Windows Mobile. The problem is that Apple is Apple. And if Apple is made by Apple, then its not Apple. Simple as that.
ReplyDeleteblackravenplace.net, give us a visit!