IPhone hack

From Noah.org
Revision as of 18:45, 16 August 2007 by Root (talk | contribs)
Jump to navigationJump to search





The iPhone is Mankind's Greatest Achievement

I bought an 8GB iPhone today (20070811). I had 14 days to return it if I couldn't figure out how to use it. I had no intention of getting AT&T because #1, I don't sign service contracts and the AT&T iPhone contract is 2 years long! #2, I had a previous ugly dispute with AT&T (which is part of the reason behind #1). #3, I got to test a friend's iPhone for quite a while over a period of weeks in many different locations in San Francisco and our conclusion is that Edge is completely worthless. The iPhone is fine on WiFi, but Edge turns out to be an annoyance. I would rather it not even try to connect to Edge and do nothing when it can't find WiFi.

Review

So I have mixed feelings about the iPhone. For $600 is a very expensive music player and WiFi surfer if you don't use it as a phone. Having to go through the nuisance of hacking it is a bit annoying considering the high price. The excuse, of course, is that Apple has to subsidize the high cost of the device with subscription fee, but $600 doesn't seem like much of a subsidy to me. Be that as it may, I still went out and bought one!

So far (20070815) I'm very happy with the iPhone. The loud speaker audio quality is very good for something this tiny. This makes it easy to watch videos with other people. The touch screen takes a little getting used to, but I really like it. I will never be as fast with the on-screen keyboard as with a physical keyboard, but that's OK. It's fine for filling out Web forms or sending a short email. If you need to do a lot of typing on something this tiny then get a Blackberry. While the iPhone keyboard isn't perfect, at least it doesn't make me angry! I had a Motorola Q for a short while and I felt like yelling at someone -- it was a mechanical keyboard so they have no excuse for making it impossible to type. The iPhone keyboard is a good compromise. Scrolling pages and images with the iPhone is awesome. It's just the perfect human interface.

The web browser is excellent. It works with everything. I renders fast. This is the very best web browser I have seen on a portable device. The iPhone Javascript engine has a little bit of a problem with pages that need you to hover a cursor over something. You don't have a cursor with the iPhone and when you touch an object on the screen it often thinks that you are trying to click it. Also I found that a few AJAX sites have some quirks. I use RoundCube for email and it will not display messages. It will show the mail folder index, but I can't get messages to display. Also, it needs Flash. Flash isn't just for fun anymore. It's used for navigation on some sites even. It's everywhere. Speaking of which, I absolutely do not care that the iPhone browser does not support Java. Java lost. Flash won. I can't think of a single web site that I can't visit because of Java. I don't even have Java installed on my desktop Firefox browser.

It Works!

I got version 7.3.0.54 of iTunes. My copy of iTunes.exe is 15330616 bytes.

I then patched the iTunes.exe and edited my hosts file according to the instructions at Jon Lech Johansen’s blog. He did all the hard work. This is just for script kiddies.

Don't even think about this if you don't are not a UNIX nerd! It also helps to love Vim. These are the notes of exactly what I did in Vim, so it was trivial to turn this into an ex script. I only did it this way because I was on a Windows machine that had Cygwin and Vim installed. I was too lazy to learn how to use some Windows hex editor. Yes, it's funny even to me that this seemed easier than using some GUI tool.

#!/bin/sh
# iJack.sh
xxd iTunes.exe > iTunes.hex
ex iTunes.hex <<HERE_EX
/003ebf0/
s/208b 4c24/2033 c9b1/
/003ec30/
s/a804/2804/
/01f4390/
s/81ec 14/33c0 c3/
w
HERE_EX
xxd -r iTunes.hex > iTunes2.exe
sha1sum iTunes2.exe
md5sum iTunes2.exe

Running the script should give the following output.

$ ./iJack.sh
eedc79544087bcde088032e817afaf0c07820d3c *iTunes2.exe
533308bc84056c207982ade2ef88de0e *iTunes2.exe
  1. If those numbers match then copy iTunes2.exe over iTunes.exe.
  2. Start Phone Activation Server.
  3. Start iTunes.
  4. Plug in iPhone.
  5. You will see the message "Incorrect SIM. Please connect to iTunes to reactivate iPhone.". This appears to be harmless. The phone now works as an iPod and web browser. I was able to get right on my WiFi and start browsing.

http://nanocr.eu/2007/07/03/iphone-without-att

Video conversion with mplayer

No luck so far, but here are the notes that I have.

  • fourcc should be M4VP.
  • H.264 video, up to 1.5 Mbps, 640 x 480, 30 frames per sec., Baseline Low-Complexity Profile with AAC-LC audio up to 160 kbps, 48 Khz, stereo audio in .m4v, .mp4, and .mov file formats
  • H.264 video, up to 768 kbps, 320 x 240, 30 frames per sec., Baseline Profile up to Level 1.3 with AAC-LC audio up to 160 kbps, 48 Khz, stereo audio in .m4v, .mp4, and .mov file formats
  • MPEG-4 video, up to 2.5 Mbps, 640 x 480, 30 frames per sec., Simple Profile with AAC-LC audio up to 160 kbps, 48 Khz, stereo audio in .m4v, .mp4, and .mov file formats
  • Link to Apple's Tech Notes: http://developer.apple.com/technotes/tn2007/tn2188.html

failed attempt

I got half-way through with the instructions here, but then felt that the instructions were unclear or unfinished, so I went back to http://nanocr.eu/2007/07/03/iphone-without-att and gave it another shot.

These notes are based on the detailed instructions from http://www.hacktheiphone.com/iphone_first_ten_steps_to_modding_windows.html .

# Install iTunes (I installed 7.3.2) on Windows XP. Don't let iTunes turn on AutoRun -- those dirty bastards! Leave me alone! I turned it off for a reason.
# Plug iPhone in USB cable then into Windows machine. I let it charge for about 20 minutes.
# Start iTune software.
# CTRL-ALT-DEL to bring up Windows Task Manager (run TaskMgr.exe).
# End Process -> iTunes.exe
# Run -> cmd
# mkdir c:\phonedmg
# Download software restore from Apple. Save As file:  http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPhone/061-3538.20070629.B7vXa/iPhone1,1_1.0_1A543a_Restore.ipsw
# rename iPhone1,1_1.0_1A543a_Restore.ipsw to iPhone1,1_1.0_1A543a_Restore.zip
# Move zip file to c:\phonedmg and then uncompress the zip file.
# Download jailbreak http://www.hacktheiphone.com/downloads/jailbreak2.zip into c:\phonedmg.
# Download iPhoneInterface http://www.hacktheiphone.com/downloads/ipi2.zip into c:\phonedmg.
# Download iTunesMobileDevice.dll http://www.hacktheiphone.com/downloads/iTunesMobileDevice.dll.zip into c:\phonedmg.