Howto: Skip activation, unlock and upload music to iPhone with Linux over wifi.
Following the Ubuntu developer summit in the US; I returned to Europe with an iPhone (about one week before the European launch). I have not plugged the phone anywhere near an MS Windows machine, Mac, or iTunes of any sort. Current status is that is has a foreign SIM card in, a root shell prompt and YouTube Top Gear clips and MP3 music. Bought for $420.00 in a big shiny shop, there is only one colour.
iPod Mini Lanyard with the extra nipple/notches removed. Fits into the docking port using two tiny 1mm latches and holds the iPhone upside-down, like a nurse's watch. Found for €5.00 in a Helsinki electronics store bargin-box and modified using penknife.
I use a stereo pair of open "police style" earphones. These hook over the ear—without the pain of in-ear buds—and allow normal conversation to continue. I had to roll (not cut!) the sleeve of the 3.5mm jack connector back on itself, to fit the tight iPhone clearance. Originally £5.00 from Maplin several years ago.
Key | Action | Result |
---|---|---|
Home | 5 seconds | kill -9 current program + return to home screen |
Home | double click | iPod/music menu (pause, play, volume, skip) |
Power + Home | 5 seconds | turn off (with confirmation) |
Power + Home | 7 seconds | power off (force immediately) |
I unlocked whilst still standing inside the Apple Store. Use one of the demostration iPhone in-store to read off the instructions if you didn't memorise them. This iPhone came running 1.1.1 firmware, with the jailbreakme TIFF image file exploit via Safari web-browser. If you have ≥1.1.2 firmware, you'll have to find another way.
Congratulations, you have avoided the AT&T/O2/T-Mobile contract and avoided iTunes—which is handy if you don't actually live in one of those countries where Apple haven't started flogging it your neighbourhood yet. An Apple employee will probably look over your shoulder at this point. You can explain openly to the Apple employee what you are doing with your new $420 device (don't forget the Tax, Americans add this to screw you afterwards). Probably the faceless employee will try to kick you out of the store.
If an Apple employee fails to approach you, you can try specifically asking for a bent paperclip™. Don't worry, the Apple Store wireless works just as well from 5m (15ft) outside the shop, as it did inside. Remember to charge up the battery from one of the handy iPod connectors before "vacating" the premises.
iPhoneSimFree didn't work for me. AnySIM did. Whip out your Linux box—laptops are good as they tend to have wireless. If you're running Ubuntu, the wireless probably works too.
Use the Installer.App (all Next Step/OS X/iPhone software is installed a directory named Something.App containing the program code and resources).
If you get in a mess, use the reboot magic we learnt at the top. Lets log in. Ensure you have a wireless network that the iPhone likes, it is picky and just doesn't like some wifi networks giving you timeouts and frustation. Try another wireless network!
passwdand set a new root password.
ifconfigto get your IP address on the wireless network.
ssh root@192.x.y.zremote r00t on iPhone. Rock on.
unzip
and scp -p -r
over
'AnySIM.App' to /Applications
, download AnySIM by
searching from Google.MS Windows users can use Putty/PSCP. Mac OSX users, hunt down "Terminal" to execute commands.
All in all the iPhone is a really solid device. Browsing works a treat with the multi-touch; the magnifying glass and pop-ups above the keyboard keys solve the issues of not being able to see what you're clicking on with a visual touchpad. The accelerated "flicking" gesture solves scrolling in a way that is not accurately possible with a mouse.
Despite having gotten a root shell fairly quickly this is a thoroughly proprietary phone; the music only wants to talk the iTunes magical speak and things like bluetooth do not "conveniently" just work. In short, anything that is likely to earn Apple or the carry money (web access/mail access/youtube/iTunes downloads) "just works" but anything likely to circumvent the cellular interface (Bluetooth, file saving/opening) doesn't work. Not too surprising; if people buy an iPhone, Apple make €100. If people subscribe with the suggested AT&T contract —Apple make *another* €350 in revenue share.
The camera application sucks. The alarm clock fails to wake up me. The SMS application doesn't give a character count. I'm sure all of these programs are replacable with better non-Apple apps in time. The device doesn't want to charge from a Thinkpad R52, but is okay from a ThinkPad T60 and a System 76 (Asus rebadge).
Bluetooth might technically "work", but you can't do anything (eg. beaming) with the Bluetooth, yet.
SCP will get your images off. On an Ubuntu box some "gphoto" magic pops up everytime you connect the USB. Lets assume this works for the moment, gets a bit annoying after a while.
As we SSH, we can mount the device:
sudo apt-get install sshfs sudo modprobe fuse sudo mkdir -p /media/ipod sudo chmod 777 /media/ipod sudo adduser $USER fuse
groups
sshfs root@192.x.y.z:/var/root/Media /media/ipodand you now have browsage.
fusermount -u /media/ipodfrom the console, or your re-login.
The white-headphones bit. Not so much iPod Touch as iPod Touchy bit. It's a proprietary database. First is to get the iPhone recognised as an iPod.
/var/root/Media
from sshfs above.cd /media/ipod ln -s iTunes_Control iPod_Control cd iPod_Control mkdir -p Device echo "ModelNumStr: xmobile1" >> Device/SysInfo lsusb -d 0x05ac: -v | grep 'iSerial *3' | awk '{print "FirewireGuid: 0x" substr($3,0,16)}' >> Device/SysInfo
If you're lucky, you can transfer some files over the wireless, have 'gtkpod' set up the database. When you have finished messy and want the device to rescan the updated database:
The wonderful thing about this is that you have wireless-sync/upload to the iPod. Something that iTunes/Mac users don't have (oh, but they have working album art instead!).
BTW: You may need to use fresh copies of 'gtkpod' and 'libgpod' from SVN. Good luck.
There's an SSL/TLS connection setup to YouTube. I did
previously copy some replacement keys into
/var/root/Library/Lockdown/
without success. The
YouTube application started working on its own at some point after
that.
Haven't got this far. There must be someway of
getting a "vCard" into the device. Contact information seems to
be in an sqlite database in
/private/var/root/Library/AddressBook/AddressBook.sqlitedb
so the answer probably lies in writing some code to shove data
directly into this.
Please help sent improvements/corrections/comments!