I’ve written up a tutorial for anyone to install Android on their iPhone 2G.  It’s quite long, but only because it’s so simple and each step has been broken down to almost every click just so it’s easy for a total beginner to try this out!

Disclaimer

I take no responsibility for any damage you might cause to your phone by following this guide.  Whether it gets bricked, blocked or eventually thrown out of the window, I can’t be held responsible.  Use this guide at your own risk. Thanks!

Introduction

Today’s hype has all been about Android on an iPhone.  As soon as I heard I knew what I’d be doing after work.  Anyway, I’ve finally managed to get Android working and thought I’d write up a clear tutorial for anyone who wants to do it.  Remember, I did this all on a Mac, but it should be possible on Windows or Linux too.  Windows users just get the Windows version of VirtualBox.

The end result is far from a fully working Android system.  It’s Android 1.6 with basic features – calls, texts, WiFi but no camera and probably a few Force Closes.  It’s easy to upgrade Android versions once you’ve managed to get to the end of this tutorial so there’s no harm in getting the hard part out of the way now!

Downloads

Here’s a bunch of stuff that you’ll need before you start:

  1. IMPORTANT! Jailbroken iPhone 2G
  2. VirtualBox (link).  Get the right version Windows/Mac
  3. VirtualBox Ubuntu Image (link).  Download number 10, Ubuntu Linux 9.10 codename Karmic Koala x86
  4. iPhone Explorer (link).  If you’re on Linux you can use FTP such as FileZilla instead.
  5. Android images and sources (link)
  6. Patched images (link).  Courtesy of Geekoid.

Preparation

Let’s get some of the basics out of the way:

  1. Open Task Manager
  2. Kill the iTunes Helper process
  3. Install iPhone Explorer
  4. Connect your iPhone to your Mac/PC
  5. Run iPhone Explorer
  6. Click the Change Root button
  7. Select “/” Real iPhone Root Directory
  8. Browse to private/var
  9. Copy ramdisk.img, userdata.img, cache.img and zImage from Downloads#5 (Android images and sources) to that var directory
  10. Copy system.img and android.img.gz from Downloads#6 (patched images) to the that var directory
  11. That’s all the Android files on your iPhone, now to make them run!

Setting Up Virtual Box

  1. Install VirtualBox
  2. Open VirtualBox
  3. Go on File > Virtual Media Manager
  4. Make sure Hard Disks is selected
  5. Click Add
  6. Locate the ubuntu-9.10.vdi file (download#3) and select it
  7. Close Virtual Media Manager
  8. Go on Machine > New
  9. Click Next
  10. Under Name enter “Ubuntu”
  11. Select Linux Operating System
  12. Select Ubuntu Version
  13. Click Next
  14. Set an amount of RAM, the default should be fine
  15. Click Next
  16. Select “Use existing hard disk”
  17. Select the ubuntu-9.10.vdi
  18. Click Next
  19. Click Finish
  20. Select that new machine to start up Ubuntu
  21. 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!

  1. Click System (top bar) > Administration > Synaptic Package Manager
  2. Enter the password: reverse
  3. In the quicksearch box, type libusb-1.0, click the Check Box next to libusb-1.0-0 and select Mark for installation
  4. In the quicksearch box, type libreadline, click the Check Box next to libreadline5 and select Mark for installtion
  5. Click Apply
  6. When it’s all installed close the Package Manager
  7. Open Firefox (in Ubuntu)
  8. Download openiboot installer from here
  9. Click Places (top bar) > Downloads
  10. Right-click openiboot.zip and click Extract Here
  11. Click Applications (top bar) > Accessories > Terminal
  12. Without the quotes, type ‘cd Downloads/openiboot’
  13. Restart your iPhone in Recovery Mode (power off, hold down Home button, connect to USB cable)

Getting Android Working!

Well done on getting this far! This is where the fun beings (credits to WinX Blog for these instructions – link)

  1. In VirtualBox, the Ubuntu Window, go on Devices > USB Devices and select iPhone (Recovery Mode)
  2. In the terminal type (without quotes): ’sudo su’
  3. Enter the password: reverse
  4. In the terminal type ./loadibec openiboot.img3
  5. You’ll see the OpeniBoot screen appear on your iPhone
  6. Hold down the power button a couple of seconds (iPhone)
  7. The bottom option, openiboot console, will become selected
  8. Press Home (iPhone).  You’ll see a bunch of text appear and stop at “Welcome to openiboot”
  9. In VirtualBox, the Ubuntu Window, go on Devices > USB Devices and select iPhone (OpeniBoot Mode)
  10. In terminal type su ./oibc
  11. Enter the password: reverse
  12. If this doesn’t work just type: ./oibc
  13. You’ll see the same text from the iPhone in the Terminal
  14. Type (without quotes) ‘nor_read 0×09000000 0×0 1048576′ and press Enter
  15. Wait for it to say Done
  16. Type (without quotes) ‘~norbackup.dump:1048576′
  17. This creates a backup of your NOR memory – save a copy on USB stick, or email it to yourself or something
  18. Type install, press Enter.  When this is done you’ve got openiboot installed on your iPhone.  You’re done!

Finishing Off

What you’ve achieved up til now is Android files on your iPhone, and then installing openiboot so that you have an option to start iPhone OS or Android when you turn on your phone.  Openiboot was necessary because that’s the only way right now that you can boot into Android.  Here’s how to finish off and get into Android:

  1. If you still have Terminal open with the oibc still running, just type ‘reboot’, press Enter and skip to step 3
  2. If you don’t have Terminal open, disconnect your phone, turn it off and back on
  3. When openiboot appears press Power button to switch to openiboot console (bottom option)
  4. Hold down the Home button
  5. Android will start to boot, but it might take a while

Good Night

I think this guide is plenty enough to help you get Android on your iPhone.  As mentioned, it’s not the full OS yet, but hopefully we’ll see a lot more devs contributing and a lot of advancement of this project.  It’s gotten quite late and I woke up really early so I’m heading off to bed.  Feel free to mention any issues in the comments and I’ll try to help out tomorrow.  I’ll also get some screenshots and videos up tomorrow too!

Credits

planetbeing – the man who did all the hard work!
WinXBlog – guide for getting openiboot running
Geekoid
– for the full system images
marco79 for FAQs 3-6
The entire Android and iPhone dev communities, making all this stuff a reality!
Anyone I missed?  Sorry if I have but feel free to tell me.  I don’t want any credit for other peoples work.

FAQ

  1. My iPhone is bricked now, how do I fix it? Use the steps in the Bricked Phones section below to make your brick work
  2. It gets stuck at the baseband message? You’re probably using WinSCP for the file transfer.  Use FileZilla instead and everything should work.  Thanks Siddharth
  3. Problem: I cannot boot a second time into Android after succesful installation. It stops with “Welcome to iboot” console.
    Solution: When selecting the os in the openiboot screen (Apple or Android), DON’T just single click the home button but keep it pushed for about 3 seconds!
  4. Problem: I can’t add the downloaded ubuntu image to virtual media manager in VirtualBox
    Solution: You have to unzip the archive. The extension “7z” means that it is a compressed (kind of) Zip file. Use any “7zip” capable unarchiver, i.e. Winrar, 7zip, BetterZip etc.
  5. Problem: When i type ‘nor_read 0×09000000 0×0 1048576′ and press Enter the iphone reboots
    Solution: Don’t copy and paste the string, type it by yourself!
  6. Problem: In terminal, when running command ’su ./oibc’, I cannot type the password
    Solution: Yes you can, you just won’t see it (no cursor). Just type it blind (and welcome to Linux shell btw).

Thanks to marco79 for FAQs 3-6!

Bricked Phones!

  1. If your iPhone appears bricked do a DFU restore, using these instructions:
    1. Connect your iPhone to your computer.
    2. Turn iPhone off.
    3. Hold power and home together for 10 seconds (exactly).
    4. Release power but keep holding home until the computers beeps (observed on a PC) as a USB device is recognized.
    5. A few seconds later iTunes should detect your iPhone.
    6. If the Restore Logo is present on the screen, you are in Recovery Mode, not DFU.
  2. My iPhone is still bricked!  Don’t worry it’s still not fully bricked.  Just retry the above DFU steps every 5 minutes or so.  People have reported that it can take up to an hour or two before the iPhone enters DFU mode
  3. Still bricked, are you taking the mick?  Nope, no mick taking.  Connect your iPhone to the mains wall charger.  Hold down the power key for at least 10 seconds.  Nothing will happen.  Take it off the charger and connect to PC using the steps in #1.  You should now be in DFU mode.
  4. OMG.  Still no luck!  Try these steps:
    This trick worked under the windows XP.You need install LibUsb-Win32 drives on your PC.
    1) Connect your iphone to the PC.
    2) Hold Sleep(Power) button and Home button for 10 sec(exactly).
    3)Holding the home button and leave power.
    4)After few seconds you PC will recognize the usb drivers and itunes will detect the you iphone in restore mode.
    Thanks to Macin for that!

Updates

Update 1 (23/04/10 11:05GMT): Added extra step to download fixed openiboot.img3 file in Setting Up Ubuntu section.   Thanks to planetbeing
Update 2 (23/04/10 15:26GMT): Merged updated openiboot.img3 with the openiboot.zip download. Should work on all 2G’s now, regardless of jailbreak method.
Update 3 (23/04/10 21:17GMT): Updated Getting Android Working, step to get correct superuser permissions before attempting to write openiboot.  Thanks blazter2k
Update 4 (26/04/10 12:13GMT): Reuploaded files for step 5 to multiupload (link)