So I have now successfully installed Android onto my 1st Generation iPhone and while it wasn’t difficult in the end, I did run into a few problems with the instructions from the site I posted before. So read below to see how I did it, exactly.
I started this project with these instructions being my only source of information. I had read the readme that comes with the android images and sources, but it was greek to me so I didn’t even attempt it until I found a more step by step method. But even with the step by step method mentioned above I ran into some issues when it came time to put the phone in restore mode and launch openiboot. After the jump you will find a hybrid of instructions from the link above as well as “Adam’s Blog” which I used to get me over an error I couldn’t get passed with the original instructions.
Note: I used a MacBook Pro Core2Duo running OSX 10.6.2 and Virtual Box running Ubuntu in order to perform the install. If you have a PC the instructions should be pretty much the same (I’m assuming) and if you have Ubuntu already on your machine you can skip most of the Virtual Box instructions.
If you plan to attempt this I take no responsibility if you brick your phone. Just because it worked for me on my pwnaged 1st Gen iPhone doesn’t mean that it will work for everyone so attempt at your own risk.
These first set of instructions come from Androidalot and worked perfectly, aside for a mislabeled menu in Virtual Box (easy enough to figure out) and the fact that the instructions don’t tell you that you need to extract the ubuntu image from the .7z file. I used Ez7z to extract the .vdi file for the ubuntu image.
Here’s a bunch of stuff that you’ll need before you start:
- IMPORTANT! Jailbroken iPhone 2G
- VirtualBox (link). Get the right version Windows/Mac
- VirtualBox Ubuntu Image (link). Download number 10, Ubuntu Linux 9.10 codename Karmic Koala x86
- iPhone Explorer (link). If you’re on Linux you can use FTP such as FileZilla instead.
- Android images and sources (link)
- Patched images (link). Courtesy of Geekoid.
Let’s get some of the basics out of the way:
- Install iPhone Explorer
- Connect your iPhone to your Mac/PC
- Run iPhone Explorer
- Click the Change Root button
- Select “/” Real iPhone Root Directory
- Browse to private/var
- Copy ramdisk.img, userdata.img, cache.img and zImage from Downloads#5 (Android images and sources) to that var directory
- Copy system.img and android.img.gz from Downloads#6 (patched images) to the that var directory
- That’s all the Android files on your iPhone, now to make them run!
Setting Up Virtual Box
- Install VirtualBox
- Open VirtualBox
- Go on File > Virtual [Media] Machine Manager
- Make sure Hard Disks is selected
- Click Add
- Locate the ubuntu-9.10.vdi file (download#3) and select it
- Close Virtual Media Manager
- Go on Machine > New
- Click Next
- Under Name enter “Ubuntu”
- Select Linux Operating System
- Select Ubuntu Version
- Click Next
- Set an amount of RAM, the default should be fine
- Click Next
- Select “Use existing hard disk”
- Select the ubuntu-9.10.vdi
- Click Next
- Click Finish
- Select that new machine to start up Ubuntu
- The password to login is: reverse
Setting Up Ubuntu
Almost there – if this feels a bit long, just consider how short and simple each step is!
- Click System (top bar) > Administration > Synaptic Package Manager
- Enter the password: reverse
- In the quicksearch box, type libusb-1.0, click the Check Box next to libusb-1.0-0 and select Mark for installation
- In the quicksearch box, type libreadline, click the Check Box next to libreadline5 and select Mark for installtion
- Click Apply
- When it’s all installed close the Package Manager
- Open Firefox (in Ubuntu)
- Download openiboot installer from here
- Click Places (top bar) > Downloads
- Right-click openiboot.zip and click Extract Here
- Click Applications (top bar) > Accessories > Terminal
- Without the quotes, type ‘cd Downloads/openiboot’
- Restart your iPhone in Recovery Mode (power off, hold down Home button, connect to USB cable)
This is where I ran into problems using just Androidalot’s instructions. They tell you the following to do next:
- In VirtualBox, the Ubuntu Window, go on Devices > USB Devices and select iPhone (Recovery Mode)
- In the terminal type ./loadibec openiboot.img3
But every time I typed this command into the terminal it yelled at me that the device needed to be read/write accessible or something (can’t recall the exact error) and it would not let me continue any further. So I did some digging to see if I could find another set of instructions which is when I came across Adam’s Blog and doing the following got me around that error and allowed openiboot to launch as it was supposed to. I also killed the iTunesHelper process using the Activity Monitor in OSX since iTunes kept launching when the iPhone was plugged in in restore mode (don’t know if this matters or not).
Type: sudo su
Type: sudo ./loadibec openiboot.img3
That allowed openiboot to fire up at which point I did the following:
Push the Power Button to highlight openiboot
Push the Home Button
You’ll see a bunch of text on the screen of your iPhone and it’ll stop at “Welcome to openiboot”, and that’s when I jumped back to Androidalot’s instructions and did the following.
- In VirtualBox, the Ubuntu Window, go on Devices > USB Devices and select iPhone (OpeniBoot Mode)
- In terminal type su ./oibc or if that doesn’t work you can try sudo ./oibc
And yet again there was a problem with #2 above because now we were in a directory that couldn’t find oibc the way the instructions asked. So I had to navigate back in the file structure using “cd ..” (without quotes) and cd Downloads/openiboot when I made it back to the Ubuntu directory. Hopefully you have a little bit of linux knowledge that you are able to figure out how to get back to that original directory.
After you get oibc to work you should be able to just type “install” (again, no quotes) and watch everything install. Once it’s done (it’ll say finished), you can go ahead and type “reboot” and you should be greeted with the dual boot screen with iPhone OS on the top and openiboot on the bottom.
Now in order to boot into Android and not openiboot, you need to press the power button to highlight openiboot in the menu and then hold the home button for a couple seconds until it starts to boot. If you just press the home button it will launch you into linux and not Android.
My Impressions of Android On The iPhone
Pointless in it’s current state. There’s not a whole lot you can do with the the current version of Android that this guy currently released so don’t expect to have a fully functioning phone after all this work. So far all I’ve been able to do with the phone is browse the internet via wi-fi… and that’s about it. According to the video, that you can find on the link just above, you are able to make/receive phone calls and texts, but it’s buggy. The OS runs slow and some things crashed (browser kept crashing until I restarted), which lead me to another issue… I couldn’t turn the phone off while in Android. I don’t know if there’s a trick or not (I know the guy had to reassign buttons and stuff to do different things), but I had no luck figuring out how to turn the damn thing off. I had to resort to the old hard reset by holding the power button and home for like 5-10 seconds until it restarted. Once it restarted I was able to boot into iPhone OS and shut down from there, but it’s obviously a little bit of a pain in the ass. The other major issue I ran into was that the phone never seems to go into sleep mode. I set the display to lock after 30 seconds, and it does that, but the backlight never goes off and it causes the phone to constantly stay on and run extremely hot. So again, maybe I just haven’t figured it out, but that’s a big deal if you plan on carrying this thing around while running Android.
So that’s been my experience so far with Android on the iPhone. I would not recommend installing this on your primary iPhone as it’s not that usable. You can always install it and then dual boot back and forth if you want, but I don’t see the point yet. So my advice is to hold off and wait to see what else comes of this. Obviously this is a huge step in getting a full working version of Android on the iPhone so I’m sure we’ll see more stuff soon.
If anyone else has done this yet I’d be curious to hear your experience and if you’ve found solutions to the issues I’ve mentioned above.