Using Dynamic Library Injection with the iPhone Simulator [REDUX]

Previously I had blogged about developing dynamic libraries / SpringBoard plugins using the iPhone Simulator included with the SDK.

Unfortunately, starting with iPhone OS 2.2, the old method of using a shell script to bootstrap SpringBoard no longer works. While the long-way-round gdb method is still usable, I decided that I'd have to find a way to make my plugins work again.

I devised a simple 'Foundation Tool' to bootstrap as before, in place of my previous shell script. The code is available here.

I'm not sure what the issue is, whether it was an intentional obfuscation or not (I'm watching you Apple!), but I can confirm that this new method works fine.

Simply edit the source file linked above, compile it, rename your original SpringBoard binary to something else ("SpringBoard_b" in the example) and save your newly compiled bootstrapper in place of the original SpringBoard binary.

Now when you launch iPhone Simulator, it should insert your library as before, so you can get your quick development turn around time back.


  1. but does't show the debug console in the terminal.

  2. Any info on how to create a dynamic library for the iphone?