My wife was kind enough to get me an iPhone for Christmas and I just realized that while I've had it for over 2 months now I hadn't blogged about it all yet. Well, I took the plunge and have looked into jailbreaking so I thought this would be a good opportunity to to do so.
My thoughts on the iPhone in general mirror many other reviews you've probably read. Slick interface, great music/video device, navigation a little clunky at times due to few buttons, and App Store is great but some key missing apps or functionality. The key things I thought were lacking or attracted me to jailbreaking were:
- Can't run apps in the background (i.e. IM clients only work when you are running the app).
- Can't tether to my laptop to get internet access.
- No video recording.
- No copy/paste (I'll admit this isn't a huge issue for me, but everyone else complains so I will :)).
- Switching 3G/WiFi/GPS/etc. on/off is a pain.
- There is no JVM.
- There is no Flash.
- It is a full blown computer running OS X, just let me access it and don't restrict me!
From everything I read, jailbreaking would address much of the above.
After doing some Googling I found a bunch of instructions for doing so that were all very similar, but I went with these instructions and it all went quite smoothly. Note that I was doing this from a MacBook Pro running OS X 10.4. The instructions seem to indicate that Apple in their quest to keep folks from jailbreaking changed something in 10.5.6 making it so you can't do the step to put the iPhone in DFU mode. There is a workaround of course!
After I complete those steps, I then used Cydia to install:
- SBSettings - One swipe of the top of the screen gives single button access to turn off/on 3G, Bluetooth, WiFi, control brightness, and more. It also shows your current IP address and free memory and disk.
- Backgrounder - Allows you to selectively mark applications to run in the background. Tried it with Fring and it seems to work fine.
- Cycorder - 15 fps video capture.
- Modem - Should allow tethering, but I haven't given it an honest effort to get working yet.
- A utility to toggle the battery status to/from numeric percentage.
- OpenSSH - Provides the ability to use ssh/scp/etc. to connect to the iPhone from any computer.
- MobileTerminal - Gives terminal access to OS X on the iPhone.
This all seemed to work fine, the only real issue being that typing in Cydia doesn't seem to honor my turning off sound on the keyboard.
I then decided I wanted to be able to run my own apps. I followed this to install iPhone 2.0 Toolchain and ended up with gcc and other tools necessary for running compiling C code. I was able to run a quick Hello World program and then also took a little benchmark I have written in C and compile and run it with no changes whatsoever. Look for another blog entry soon with results from that.
I also came across JamVM which gave me a Java VM which was also able to run my Java version of my benchmark (quite a bit slower than the C version FWIW).
I have not come across anything for Flash yet, but otherwise most everything I was looking for appears to be addressed. As I find more things, I'll blog more!