Hacking my iPhone

I’ve finally taken the plunge after wanting to for some time. This is what I did, all steps are from using the iPhone directly, no computer required.

NOTE: I can’t take responsibility for anything that happens to your iPhone. As the warning for the installer program states, “This software comes with absolutely no warranty of any kind. If it should cause any harm to your iPhone or data, we shall not be held responsible.”. That said, there are instructions to Virginizing your iPhone to 1.0.2 . So if you ever had to return the phone to Apple you would need to do this first.

Part 1. The Installer
NOTE: This only works if your Phone has firmware Version 1.1.1. If you have the iTunes button you have 1.1.1 (as at 01-Nov-2007). You can find our your Version by going Settings -> General -> About and look for the Version value.

  1. Disable Keyboard Passcode Lock if enabled (Settings -> General -> Passcode Lock -> Off), Disable auto-lock (Settings -> General -> Auto-Lock -> Never), enable Wi-Fi (Settings -> Wi-Fi -> On) and get connected to a wireless network (Settings -> Wi-Fi -> Join Network)
  2. Using Safari Browser, goto http://jailbreakme.com/ .
  3. Click on Install AppSnap link. The phone will appear to do nothing before it returns to the initial screen, with Slide to Unlock. (It took less then a minute for my iPhone to go back to Slide to unlock, other notes indicate up to 5 mins)
  4. Slide to unlock. You will see a new icon called Installer. (Don’t click it yet)
  5. Power off your phone, and power back on. (I’m uncertain how long this will take, as I did it slightly different, but don’t be alarmed if it takes at least 15 minutes this first time, as that what it took for me.

Note: At step 4 I selected the Installer button (it asked me to Update, which I did). This was bad idea, it went to Downloading package and never recovered after 5 minutes. I needed to do a reboot via holding down menu button. Click on the Installer button again, and it simply doesn’t start properly, going back to the main page. Turning off via power button freezes as well. After 5 minutes, tried holding down first the menu button, then the power button, no luck. Froze on the shutdown spinning icon for at least 15 mins.

Part 2. The Necessary Programs

You can now install the following programs when selecting Installer. Note: after each installation it will go back to the initial slide to unlock screen.
Note also the initial order, in particular the first 3 are important.

  1. Installer -> System -> BSD Subsystem (Version 1.5, 6.6 M)
  2. Installer -> Sources -> Community Sources (Version 3.0, 165 bytes) Update This happens automatically now.
  3. Installer -> System -> OpenSSH (Version 4.6p1-1, 696k)
  4. Installer -> System -> Term-vt100 (Version svn198, 81k)
  5. Installer -> Package -> Summerboard (Version 3.0a11, 693k)

This then gave me access to SSH to my phone, SSH out to the big bad world, and ability to have different themes, changing the look and feel, see Summerboard themes for example.

Part 3. The fun applications.

I installed to start with the following application, you should choose what you like.

Installer -> Games -> Sudoku (Version 1.0-1, Size 24k)
Installer -> Utilties -> Erica’s Utilities (0.36, 42k)
Installer -> Utilities -> Erica’s iPhone Utils (0.06, 12k)
Installer -> Utilites -> Erica’s Ported Utils (0.06, 2.5M)
Installer -> Multimedia -> VoiceNotes (0.21, 60k)
Installer -> Productivity -> Crosswalk (1.01, 362k)

Practically everything is from www.modmyifone.com . Many references available online helped including here . Thanks James for the demo and points to success.

Some darn wicked stuff.

One of the cool things, being able to save Call History, SMS messages and Notes. Did via SSH with the following commands:

PATH=/var/root/bin:$PATH;export PATH
sqlite3 -line /private/var/root/Library/SMS/sms.db 'select address,text from message;'
sqlite3 -line /private/var/root/Library/Notes/notes.db 'select data from note_bodies;' | sed "s/^.*data = //"
sqlite3 -line /private/var/root/Library/CallHistory/call_history.db 'select "* " || address || " (" || ((duration/60)+1) || "  minutes)" from call;' | sed "s/^.*= //"
Tagged with: Apple IPhone

Producing IQR and Outlier statistics with SQL

The interquartile range (IQR) measures the spread of the middle 50% of a distribution — the distance between the first quartile (Q1) and the third quartile (Q3). Combined with Tukey’s 1.

Producing Mode statistics with SQL

The mode is the value or values that appear most frequently in a dataset. Unlike the mean or median, it applies naturally to categorical and ordinal data — star ratings, product codes, survey responses — and reveals what is most common, not what is average.

Extending MySQL Capabilies with UDFs, Plugins and Components - Part 2

MySQL offers three different approaches to extending the SQL capabilities with the default product you download and install. These are: User Defined Function (UDF) MySQL Manual MySQL Plugin MySQL Manual MySQL Component MySQL Manual In my prior post I provided a new uuidv function that accepted a numeric argument to return a string of the version of UUID specified.