 |
Note: This document was made for my own use, and is not fit for any particular purposes.
Despite this, I am claiming copyright: (c) copyright 2008 by Alexandru Iosup. All rights reserved.
Disclaimer: Any of the tools described below can render your
iPhone unusable. Proceed at your own risk, but be aware that following the procedures
described here is like following blindly the scribbles on a disaffected prison latrine's
wall to treat yourself for a severe case of flu.
Also, this disclaimer is here only because our lawyers forced us to include it.
1. How did I end up with an iPhone? (added 12 Oct 2008)
The iPhone is a cell phone produced by Apple, the makers of the Mac computers.
It's technical specs are in between the high-end and low-end markets, according to
the official specifications,
the unofficial specifications,
and more unofficial specifications.
In other words, it's not a Sony-Ericsson w850i, or a BlackBerry.
Now, I'm not a big fan of Apple: they're a small, greedy company with nice
design and extremely pricey software. In other words, you pay lots to have nicely
shaped hardware, and then to operate it you're stuck with buying software at
exorbitant prices. Nothing more true for the iPhone, at least until recently.
When iPhone was released, Apple's policy was as such that adding
third-party (for instace, yours) software made the iPhone
turn itself into an unresponsive yet nicely-designed and costly brick
(Apple invoked reliability and security issues). After iPhone was hacked, and
third-party software started to appear, Apple relaxed the rules, started an
iPhone Developer Program, released an
iPhone software development kit (SDK), and updated the phone's core software (the firmware)
to cancel the existing "hacked" software. Besides the price, the new SDK was
associated with a heavy non-disclosure agreement (NDA), which effectively prevented
anyone from sharing their programming experience or other technical know-how.
That's right, not even with another person bound by the same NDA. In Apple's words,
this was done so that others don’t steal our work.
Anyway, on 1 Oct 2008 the NDA was lifted; the current iPhone Developer Program details are described here.
Things went quickly from then on. Besides the hackers cracking the current firmware,
Apple released a free version of their iPhone SDK. But, wait! Did I say free?
Sorry, the iPhone SDK is free, but it only works on their newest operating version,
10.5, which as you can guess is just a visual update to 10.4 (pricetag: $129 upwards,
depending on your location and the number of users you want the license for;
you also need to upgrade to at least 10.5.2 to use the iPhone SDK).
Oh, oh, and it only works (by default) on their newest Intel-based machines
(though installing the iPhone SDK on a PPC is now also possible;
more info here,
here,
and here (page bottom)).
So what made me actually get one of these iPhones? Well, my current phone
contract was expiring, and they let me get any other reasonably priced phone
cheaply (EUR 1.-). And I had a (largely unused) mini mac.
And I was hoping that I'll develop a game for this new environment.
When you look at the previous paragraph, you realize that more likely I got an
iPhone at a Sunday morning's impulse.
2. Jailbraking an iPhone (added 13 Oct 2008)
The "jailbreak" is a metaphor for the state of your iPhone once you
remove the most obnoxious of Apple's restrictions. To begin the jailbreak of
a 3G iPhone with firmware 2.1 using
a Windows-based platform, you'll need two pieces of software, QuickPwn 2.1
(also from here) and
the 2.1 3G iPhone firmware image - iPhone1,2_2.1_5F136_Restore.ipsw
(also from here), and
a tutorial from one of the original QuickPwn web site,
the iClarified web site, and
the forgeniuses.com tutorial.
You'll also need the DiskAid application and
the patched MobileInstallation file.
Other useful pages can be:
a guide for iPhone jailbreaking from several other platforms,
a list of official iPhone firmware images,
the iFuntastic Mac OS X tool for iPhone customization,
the iPhone hacking kit step-by-step page.
It took me ~15 minutes to jailbreak a 3G iPhone with 2.1 firmware.
Possibly the most complex part was the timed part of holding the On-Off button for 5 seconds,
then the On-Off and Home buttons for 15, and then the Home button for 30.
After jailbreaking and rebooting several times (did you notice how much the
rebooting process is slowed-down with the jailbreaked 2.1 firmware?),
the phone was up and running.
3. Several software picks using Cydia, Installer, and AppStore (added 14 Oct 2008)
While Cydia, Installer, and AppStore are all good sources of free and non-free software,
Cydia is by far the best from a sys-admin point of view, while AppStore is the best
from an ease-of-use point of view. AppStore is usually demanding and reputedly difficult (here,
here, and
here) for
software developers, so many choose to release their work using the Cydia or Installer channels.
Also, you can choose to install your own Cydia repository (read Saurik's tutorial on how to host a Cydia repository).
From Cydia I've installed (for a more detailed list of Cydia applications look
here and
here)):
- Several U*ix tools (free), including wget, most archiving utilities, a terminal, OpenSSH, etc.
- NES (free), a Nintendo ES game emulator. Now you only need NES ROMs.
- MacMan (free), a PacMan game clone.
- AptBackup (free), a utility for backing up the list of applications installed using Cydia (needed after updating the firmware).
- BossPrefs (free), a utility for customizing the iPhone settings (more versatile but also more dangerous than the default Settings tool provided by Apple).
- Categories (free), a utility for adding folders to iPhone's SpringBoad (main interface).
- Searcher (free), a utility for searching the iPhone's content.
- MobileTerminal (free), a utility for accessing the iPhone OS from a terminal (an interactive command-line facility).
- WinterBoard (free), a showoff interface customization tool with great community support.
I can't remember a single app that I've got using the Installer channel.
From AppStore I've installed:
- chesspuzzles (free), a chess puzzles game.
- Fring (free), an instant-messaging and voice-over-net tool that can log into the Google Talk, Yahoo Messenger, Skype, and about ten other networks.
- LinkedIn (free), a client for the LinkedIn social/professional network.
- Lightsaber Unleashed (free), a showoff tool that allows you to swing your iPhone around like a lightsaber (does Star Wars ring a bell, folks?). Useless, but the sounds are fun.
- Neverputt ME ($0.79), a 3D minigolf game.
- SysInfo (<$2), a utility for checking the system status.
By default, Cydia and Installer come preconfigured with package sources (Installer 4 has only one). You can add more package sources to Cydia and Installer.
To add a package source to Cydia, start Cydia, then select Manage—>Sources—>Edit—>Add. A dialog pops-up; type the package source URL, then tap the Add Source button.
To add a package source to Installer, start Installer, then select Sources—>Edit—>+. A window pops-up; type the package source URL, then tap the Done button.
Here is a good list of package sources for both Cydia and Installer; note that not all are still working.
(from Jailbreak readme) To put the apps you have written on your iPhone, you have to jailbreak it,
install OpenSSH from Cydia or the Installer, and then SSH into your iPhone from
your computer using whatever SSH client you use (Cyberduck, WinSCP), and then
from your iPhone's "/" directory go into the "Applications" folder and copy the
.app file you made on your computer into that folder. I think you have to change
permissions to 777 but I am not sure. And you then have to restart your iPhone.
To uninstall Cydia and Installer applications, you need to delete them from your iPhone.
For this, you can connect to the iPhone from your home machine, using a tool like
DiskAir (Win; v.1.5 for up to and including 2.1 firmware available here)
or iPhone Browser, browse to the location of that application, and delete its files.
You can also use the phone's terminal to delete the files locally.
Finally, you can ssh to the phone and delete the files remotely.
4. Programming for the iPhone (added 15 Oct 2008)
I don't know much at the moment about iPhone development. Apparently, you can
develop applications by using one (or more) of the official iPhone SDK and associated tools,
the iPhone Open ToolChain API,
and the iPhone WinChain.
A brief discussion on the topic of iPhone SDKs can be found here.
And Saurik's tutorial on setting up an iPhone tool chain; same thing from an O'Reilly editor.
Upcoming...
5. iPhone Benchmarking (added 24 Oct 2008)
iPhone network bandwidth/latency tests
- The tiny iphone network speed/latency test -- file download and ping tests using the full browser.
My desktop to dslr.net: BW 2MB file: 5930kbps, Latency probes: 157ms 125ms 109ms 141ms 94ms 94ms 109ms 94ms 110ms 109ms.
My iphone 3G to dslr.net #1: BW 2MB file: 1034kbps,
Latency probes: 451ms 497ms 249ms 251ms 230ms 295ms 244ms 253ms 259ms 248ms.
My iphone 3G to dslr.net #2: BW 2MB file: 1233kbps,
Latency probes: 644ms 460ms 258ms 254ms 258ms 251ms 242ms 249ms 232ms 236ms.
| Statistics: |
| alltime | today |
| GPRS | 40kbps / 1519ms 147 samples | 35kbps / 1478ms 7 samples |
| EDGE | 140kbps / 1087ms 147 samples | 151kbps / 893ms 253 samples |
| 3G | 576kbps / 429ms 17204 samples | 555kbps / 421ms 1340 samples |
| WiFi | 2036kbps / 145ms 1031 samples | 1906kbps / 141ms 74 samples |
|
 |