pusher: March 2009 Archives

On Monday we've released InstallerApp immodestly comparing it to iTunes by saying "it is like iTunes for jailbreak apps". While leaving all those arguments about legitimacy of jailbreak aside, we'd like to clarify one misconception about InstallerApp and explain how it's different from standard jailbreak solutions and what we mean by "running non-App Store apps on iPhone without jailbreak".

Typical jailbreak solution
When you jailbreak your iPhone with a typical jailbreak solution (in a form of QuickPwn or PwnageTool), in addition to patching the iPhone's kernel (to be able to run applications that are not signed by Apple), they also patch several system files. Usually these tools also install Cydia that moves on the first launch Applications folder into user's partition (so when you install any additional apps, you won't run out of space in the 300MB system partition). 

But the main thing that these jailbreak tools do is they open iPhone's system partition to install different command-line tools -- basically, to "fill" iPhone's underlying UNIX OS with some tools that Apple didn't include. By doing so they potentially make iPhone less secure and less stable -- when any app can overwrite (by accident or on purpose) any system file on the system partition and make your iPhone unusable. 

To perform these operations with iPhone, jailbreak tools require iPhone to be in the DFU mode (special recovery mode) -- when you press and hold iPhone's buttons during the launch for 10 seconds when connected to computer and do other weird stuff :) This is where the most users have issues nowadays -- because Apple screwed up in 10.5.6 and often you just need a USB hub to connect iPhone with USB cable to your Mac.

InstallerApp -- not your typical jailbreak
The same DFU mode is required for InstallerApp's Pusher that also does some seemingly weird stuff to your iPhone, however there are some major differences between Push and jailbreak. 

While InstallerApp puts its mobile sibling installerd (special demon application that handles synchronization between Mac and iPhone) on iPhone's system partition, it leaves system partition CLOSED, so no app can write there and mess up your iPhone's file system. It also does NOT install a bunch of different command-line tools (installed by tools like Cydia) and it does NOT replace system libraries.

There are two kinds of applications for the iPhone -- some are just games or small utilities that do not require any modification to iPhone's file system and won't require open system partition. In this case "pushing" without full-scale jailbreak is not required and these apps will work just fine on your iPhone.

DPKG Support "pushing"
However there is a big group of other applications, system utilities and other programs that will modify iPhone's system behavior (WinterBoard, for example, that enables changing themes in iPhone interface). These apps DO require writable system partition and command-line tools for them to successfully functioning. 

InstallerApp has solution for that as well -- instead of performing jailbreak with aforementioned tools like QuickPWN, InstallerApp will offer to install DPKG support files that will put on your iPhone required command-line tools and will make system partition writable. This is basically the same set that is installed by Cydia, but rebuilt from scratch and highly optimized for better performance -- it's smaller too, just 1,2MB instead of Cydia's 32MB. InstallerApp will show an alert warning users about consequences of DPKG support installation, and if user agrees, the same "pushing" procedure will install these tools on the user's iPhone.

After DPKG support installation by InstallerApp any program that requires jailbreak, will work on the iPhone.

I hope this clears the confusion between jailbreak and unofficial applications working on iPhone, and what's the role of InstallerApp in that.