A Look Inside the Think Tank...

iPhone 3G: Firmware Download Links, Search Engine Tweaks, Bookmarking Hacks, "slide to unlock" Customization

Created on and categorized as Technical.
Written by Thomas Steiner.

iPhone 3G: Firmware Download Links, Search Engine Tweaks, Bookmarking Hacks, "slide to unlock" Customization

There is a few things I usually do when Apple decides to release a firmware update for the one and only iPhone:
  1. Jailbreak the device: to me my iPhone is not so much a phone, but a computer in my pocket that happens to be able to do phone calls as well. It has a terminal, it has Internet access, and it can run vi. I have been all the way through jailbreaking, starting with jailbreakme.com with manually SSH'ing into the device and installing stuff, over to ziPhone, and for quite some time now the awesome Dev-Team's PwnageTool. One annoying task each time is finding the direct download links for the firmware IPSW files. The iPhone checks http://phobos.apple.com/version, which is an ugly machine-readable XML file, but there is also a human-readable version of the iTunes Firmware Update Table available over at trejan.com's.
  2. My regional settings are German. in consequence the iPhone thinks that I want to use Google in German. While this is true in about 30% of the cases, the major annoyance is that the default search interface accessible from the search bar is not mobile-optimized. On mobile devices the default Google search experience should be http://www.google.com/m/, or the local TLD version respectively, e.g. http://www.google.de/m/. You can force your iPhone to use Google in your preferred domain in the mobile-optimized interface as follows (Jailbreak required):
    • SSH into your device.
    • Navigate to /Applications/MobileSafari.app.
    • Locate the file GoogleTLDs.plist and download it to your computer.
    • With some kind of Property List Editor (one ships with Apple's Developer Tools, you might have to convert the file from binary to textual) find the entry for the Google TLD that your iPhone uses by default (in my case it is .de, so the key is DE).
    • Change the string of the value (not the key itself) to the TLD of your choice (in order to make it .com/m I went for com/m).
    • Copy the modified file back to your iPhone (paranoids make a backup of the file, all others regret later).
  3. Mobile Safari misses the feature to open links in a new tab. This is particularly useful if you read the news, Digg, or any other "many interesting stories on one page" kind of site. While there is a bookmarklet called Tabulate that does exactly the job, getting it installed is a pain if you do not want to lose your bookmarks from Mobile Safari, or if you do not use (desktop) Safari bookmark synchronization. But there is hope. As outlined before obtain the bookmark's plist file at /var/mobile/Library/Safari/Bookmarks.plist and at the appropriate section (you will get it if you just work through the node list) add the bookmarklet's URIDictionary. It should look somehow like this:
  4. At developer events you rarely are the only one to own an iPhone, so having a quick option to check whether a specific phone is yours might be helpful. I decided to brand my "slide to unlock" field with my name just to be on the safe side. This is as easy as SSH'ing into /System/Library/CoreServices/SpringBoard.app/English.lproj, and changing the key AWAY_LOCK_LABEL to whatever you like (again, the value of the key, not the key itself). Respring or reboot both put the change in effect (respringing put my device in safe mode for the first time, then it worked).
Hope you found some of this useful. What is your iPhone setup ToDo list after a firmware upgrade? Oh, and almost forgot: use AptBackup and read how to backup your Cydia apps via iTunes before you apply your next firmware update.