What is Google Android & Why on the iPhone?
Google Android is an operating system for mobile phones. The Google Android operating system is based on the Linux kernel and released under the Apache License. Respectively, Google Android is a free, open source operating system for mobile phones. Google Android allows complete freedom to operate, customize and modify all software aspects of a mobile phone as desired.
The iPhone operating system was designed by Apple. The iPhone operating system is specific to the Apple iPhone and modified to run on the Apple iPad. To make the user experience more secure and enjoyable, the iPhone OS has many security restrictions. These restrictions stop iPhone owners from utilizing certain software and making modifications to the operating system without approval from Apple, which is not easy to obtain.
The Google Android operating system presents the perfect opportunity for the iPhone; enabling free modification of the iPhone without the security restrictions of the iPhone OS. The iPhone OS is based on OS X and therefore very Unix-like in nature, making the introduction of a Linux-based OS such as Google Android a practical choice.
How Google Android was Ported to the iPhone
The possibility of running other operating systems on the iPhone began with the development of the iBoot loader. The iBoot loader was brought to the iPhone by a hobbyist hacker named David Wang, commonly know was “planetbeing”. David Wang initially designed the iBoot loader to run Linux on the iPhone; which quickly led to the port of Google Android, which runs on a Linux-kernel.
Utilizing iBoot it was possible to launch another operating system on the iPhone. However, no operating systems had been previously available except for David Wang’s iPhone Linux. The Google Android operating system was loaded onto the iPhone and launched via the iBoot loader. David Wang, working together with other coders developed drivers to enable Google Android to effectively communicate with the iPhone’s hardware.
These modifications had to be made to enable multi-touch support, communication with the iPhone chip-set and several other iPhone specific hardware and chip-sets.
Requisites & Preparing the iPhone
There are a few things needed to complete the process:
- A computer running Ubuntu Linux -or- Virtualbox, VMware, Etc.
- iPhone Explorer or an FTP program such as FileZilla.
- Pre-built Android Images (link)
Once the Requisites have been obtained, the iPhone needs to be prepared for iBoot:
- Ctrl+Alt+Del to open task manager.
- End Process for the “iTunes Helper”
- Start iPhone Explorer
- Connect iPhone to computer
- Navigate to the root directory “/”
- Navigate to private/var
- Copy the files “zImage”, “userdata.img”, “ramdisk.img”. “cache.img”, “android.img.gz” and “system.img”
Using Ubuntu to Tame the iPhone
Ubuntu is capable of assisting the iPhone through the installation process of Google Android:
- Using the Synaptic Package Manager in Ubuntu, install “libusb-1.0” and “libreadline”
- Download the open iBoot installer (link) in Ubuntu
- Navigate to the directory where the iBoot installer is located
- Launch Terminal (via Accessories in Ubuntu)
- Launch iBoot with this command ‘cd Downloads/openiboot’ (omit quotes)
Now to begin communicating with the iPhone:
- Restart the iPhone in recovery mode.
- In Ubuntu, go to Devices and select iPhone (Recovery Mode) under USB Devices
- Return to terminal and type ‘sudo su’ (omit quotes)
- Now initialize iBoot with this command, ‘./loadibec openiboot.img3’ (omit quotes)
- iBoot will now begin communicating with the iPhone, look for the iBoot logo to appear on the iPhone screen
- Hold down the power button on the iPhone to select the bottom option in iBoot, “openiboot console”
- Press the home button on the iPhone to initialize the console
- Wait for welcome message to appear on the iPhone screen
- In Ubuntu, goto Devices and select the iPhone (OpeniBoot Mode) under USB Devices
- Issue the following command in the Ubuntu terminal, ‘su ./oibc’ (omit quotes)
- The text on the iPhone screen will now appear on the terminal screen in Ubuntu.
- Issue the following command in Terminal, ‘nor_read 0×09000000 0×0 1048576’ (omit quotes)
- Once the message “Done” is displayed, issue this command, ‘~norbackup.dump:1048576’ (omit quotes)
- A backup of the NOR memory has been created, save this in a safe location
- To begin installation of iBoot to the iPhone, type ‘install’ (omit quotes)
At this point the Google Android System Files are installed on the iPhone. The iBoot loader is now also installed on the iPhone and ready to launch the Android operating system.
Launching Google Android on the iPhone
Now that the installation has been completed, it is time to launch Google Android on the iPhone.
- Disconnect the iPhone from the computer.
- Reboot the iPhone (hold down power button until iPhone turns off, the press it again to turn it back on).
- iBoot screen will appear when the iPhone powers on.
- Press the power button to select the bottom option, “openiboot console”.
- Hold down the home button to launch Google Android OS.
- Wait, it might take a while to start.
Troubleshooting, Resources & Additional Information
If any problems or errors were encountered during installation the best solution is to do a DFU restore. The iPhone will function normally afterwards and another installation of the Android OS can be attempted.
It will be a never-ending and continued process to port the Google Android operating system to the iPhone. Continued upgrades of the operating system will need to be ported to the iPhone. After the initial install, upgrading each future release will be an easy process unlike this initial installation.
For more information and new developments, visit hobbyist hacker David Wang’s blog: Linux on the iPhone