Installing iDroid (OS X)
This guide is intended for OS X users.
This guide is aimed to help you get iDroid running on your iPhone 2G, 3G or iPod Touch 1G.
PLEASE READ EVERYTHING FIRST BEFORE ATTEMPTING TO DO ANYTHING.
If you have no idea what sudo rm -rf / does, then please don't try to do anything first.
This is also an alpha release, therefore we cannot guarantee the OS is 100% stable, if you are not familiar with messing with the iPhone and at least a basic understanding of OS X terminal commands, we do not recommend you install iDroid on your device for the time being.
OS X 10.6 Snow Leopard
- Knowledge of OS X bash commands comes highly recommended.
- If bash scripting is not your cup of tea, please use one of the auto-installers available on the iDroid Project forums to simplify the process.
- Libusb is needed. Please download the following libraries:
- Install usbreadline.mpkg.zip first then install libusb-mac.gz. Always make sure that libusb-mac.gz is the last to be installed. If you installed libusb-mac.gz first, install usbreadline.mpkg.zip then reinstall libusb-mac.gz.
N.B: The Auto-Installers are not supported by any of the main developers of the project as we do not know how they work (due to some people's choice to not share or release their sources...)
Please do not pester the developers on problems relating to auto installers (we especially hate it when someone asks us about scroll mode :P).
All queries related to an auto-installer belong in that program's thread.
If you are still following the manual install, please read on for the full process.
From the start we would like to make it absolutely clear that iDroid is NOT compatible with the Spirit Jailbreak (www.spiritjb.com) nor is it compatible with the jailbreakme.com Jailbreak. If you come to the IRC Channel/Forum asking for help, you will most likely be ignored (or flamed) if you state that you are using either of the above.
Recommended jailbreaks are redsn0w or any of the pwn varietes (QuickPWN, Pwnage tool etc) - These are known to work well.
All iDroid related material is hosted by nickp666 at http://idroid.nickpack.com.
1. Navigate to http://idroid.nickpack.com with your browser.
2. Navigate to iDroid > official > iDroid-Project and choose the folder that relates to your device.
3. Download the latest release and gunzip it.
4. Navigate to the idroid folder and check if you have the following files:
android.img.gz cache.img system.img userdata.img zImage
5. Navigate to the openiBoot folder and check if you have the following files:
openiboot.img3 /tools folder
6. In the openiBoot folder, navigate to tools, then navigate to the OSX folder (you are using Mac OS X of course, otherwise you are reading the wrong guide).
7. Copy the files in the OSX folder to the openiBoot folder. The openiBoot folder should then contain the following files:
loadibec oibc openiboot.img /tools folder
8. Don't forget to install the libusb link above (if you forgot, the link is here: http://idroid.nickpack.com/OLD/libraries/libusb-mac.gz). Extract the archive and run the package file. Leave everything at default. Don't forget to enter your password when asked. Don't worry it's not filled will malware, spam or anything malicious.
Video Guide / Screen shot walk through
Please note that the videos are outdated.
Preparing the device
Beginning with openiBoot 0.1.2, the idroid files (from idroid folder) must be placed on the iDevice in the directory /private/var/idroid.
There are many ways in which this can be achieved. The best and most recommended way is to use ssh/scp. If you are like me and insist of having an interface for ssh'ing, gftp is good on Linux. Cyberduck is a good free client for OS X. Do NOT use WinSCP on Windows, there have been many reports of problems with it.
If you want to transfer files via USB cable, DiskAid, iPhone Explorer, or Phone Disk can be used on OS X (although afc2add must be installed with Cydia in order for it to connect to the device).
- SSH into the device (this should be fairly clear to any beginner iPhone user by now) and navigate to /private/var/.
- Make 3 new directories named idroid (/private/var/idroid/), sdcard (/private/var/sdcard/) and firmware (/private/var/firmware). These directories are case-sensitive and are all in lowercase/small letters; firmware is not the same as Firmware or FIRMWARE. The firmware folder will be required in the next section.
- Copy the 5 android related files into the /private/var/idroid directory. The 5 android files are android.img.gz, cache.img, system.img, userdata.img and zImage. If you are using OpeniBoot version 0.1.1 and below, the directory is /private/var instead of /private/var/idroid.
- Make sure that the filesizes of the 5 android files from your computer match or are equal to the filesizes of the 5 android files in /private/var/idroid.
Extraction of firmware
Next up is the extraction of firmware. For legal reasons, we cannot distribute these copyrighted binaries, so we you will need to extract them from the device itself.
We have both auto-extractors (recommended as these are supported by the main devs) and a manual extraction method. The preferred method is to use Neonkoala's Bootlace app from Cydia.
Getting sd8686 and sd8686_helper
The Wi-Fi firmware files are already included in the latest release. They are in the firmware folder from the extracted archive. Don't forget to read the included LICENSE.txt.
They can be also found on Marvell's site, if you want to try different firmware.
- Go to http://www.marvell.com/support.html
- Under "Choose a platform", select "Linux 2.6 - Fedora".
- Click the Search button under the drop down box.
- Download and extract the SD-8686-* zip archive.
- Rename helper_sd.bin to sd8686_helper.bin
- Keep sd8686.bin and sd8686_helper.bin in a safe place for later.
Or get them here: http://www.zesg.net/ninn/sd8686.tar.gz
Getting the Zephyr files
Automated Zephyr Extraction
It is recommended to use Bootlace to automatically extract the zephyr files since Bootlace runs on iOS and will put the files to your firmware folder.
Manual Zephyr Extraction
Install Vim, iokittools, Core Utilities from cydia (Hackers Mode +Command Line) or
apt-get install vim iokittools coreutils
- For iPhone 2G Multitouch:
a. Run the following commands over ssh:
ioreg -l -w 0 | grep '"Firmware" =' | cut -d '<' -f2 | cut -d '>' -f1 | xxd -r -ps - zephyr_main.bin ioreg -l -w 0 | grep '"A-Speed Firmware" =' | cut -d '<' -f2 | cut -d '>' -f1 | xxd -r -ps - zephyr_aspeed.bin
b. Transfer them (zephyr_main.bin and zephyr_aspeed.bin) to your PC
- iPod Touch 1G (1st Generation):
cat /private/var/stash/share*/firmware/multitouch/iPod.mtprops | grep -B2 0x0033 | grep data | sed 's/^\t\t<data>//' | sed 's/<\/data>$//' | base64 -d > /var/firmware/zephyr2.bin
- iPhone 3g users should use this:
cat /usr/share/firmware/multitouch/iPhone.mtprops | grep -B2 0x0049 | grep data | sed 's/^\t\t<data>//' | sed 's/<\/data>$//' | base64 -d > zephyr2.bin
This command will automatically extract the zephyr2.bin for iPod Touch 1G and put it in the right folder.
Transferring the firmware files
Once all extraction has finished, you should end up with the following files:
- zephyr_aspeed.bin and zephyr_main.bin (iPhone 2G)
- zephyr2.bin (iPhone 3G and iPod Touch 1G)
- sd8686.bin and sd8686_helper.bin (All Platforms)
All these files must be placed in the folder we created earlier (/private/var/firmware). Make sure that the filesizes match again. Wrong filesizes can mean an error or problem in transferring so please try transferring the files again until the filesizes match.
Loading and Installing OpeniBoot
Now we need to install the bootloader, openiboot. Bootlace 2.0.3 does not install openiBoot at the moment.
1. Open up a terminal and navigate to the openiBoot folder containing loadibec, oibc, and openiboot.img3. The following is only an example command:
2. Turn off your device and place it in Recovery mode:
When the device is turned off, hold down the home button, then connect the USB cable (make sure that is connected to the PC), keep holding the home button until a screen with the iTunes logo and and a cable pointing towards it. Don't forget to kill iTunesHelper or else iTunes will automatically open upon detecting an iDevice in Recovery Mode.
3. Go back to the terminal window and type the following command (don't forget to enter your password when asked):
sudo ./loadibec openiboot.img3
The device's screen should flash for a brief second and the OpeniBoot menu will load.
4. If you would like to test android before installing openiboot, simply navigate with the volume buttons (or power button if you are on iPod Touch 1G) to the android logo and press the home button. You will have to repeat the loading openiboot process in order to install it later.
5. Using the volume buttons (or power button if you are on iPod Touch 1G), navigate to the console selection (the cog icon) but don't press the home button yet.
6.In the terminal window type the following command:
Do not press enter yet - this is where your quick reflexes will pay off.
7. Press the home button on the device, wait 1 or 2 seconds and then press enter on your PC to send the command, this is necessary as there is a current problem with openiboot where the computer often does not connect to the device if the console screen has been on for a long time. You will know if the computer has failed to connect to the device if you receive only this output:
!<filename>[@<address>] to send a file, ~<filename>[@<address>]:<len> to receive a file ---------------------------------------------------------------------------------------------------------
The command will succeed if you see "WELCOME TO OPENIBOOT" on the terminal screen on your PC.
8. In the terminal window type this command:
- Note: If you get a error like this:
**ABORTED** Writing total image size: 0xeb240, new ibot size: 0x3b180 at 0x20000 would overflow NOR!
- Try to remove any custom bootlogo/recovery images by jailbreaking the device again without this option.
The install process should take around 30 seconds to 1 minute to complete. When completed, it will display this message on the iDevice: Openiboot installation complete. It may also display the message on the terminal screen on your PC.
This command will have also copied a file to your PC: norbackup.dump (usually a 1MB file). Keep this file in a safe location as it is the backup of the original bootloader, if the bootloader corrupts and you do not have this dump file, your device may become a very expensive paperweight.
9. Type this command in the terminal:
Your device should reboot and you shall be presented with the OpeniBoot menu again.
Congratulations, you have finished the installation procedure. Enjoy flaunting iDroid on your device. Refer to the User Manual for proper and correct usage of iDroid. If you have any questions, check out the FAQ. Remember to submit all issues and feature requests to the issue tracker at http://dev.idroidproject.org.
Putting your music and photos onto your iDroid install
Quite obviously, the iPhone has no memory card expansion slot. The problem is, iDroid only has 50Mb free space on the images.
We work around this by emulating the SD Card and tricking Android into thinking there is already an SD Card inserted. This should give you full access to iOS's space (i.e 8/16 GB).
SD Emulation in this release looks for your files in /private/var/sdcard, so transfer your files over to there.
Getting Help/Reporting Bugs
If you experience any issues or bugs (which there are likely to be many) please take a moment to report them to us so that we can fix them - report them at http://dev.idroidproject.org
If you need help with setting up or have general questions either visit the forums (http://www.idroidproject.org/forum) or talk to us on IRC (#idroid-dev or #iphonelinux on irc.osx86.hu)
Many, many people have contributed much of their time to get this project to where it is today. We of course could not have done any of this without the work from planetbeing, CPICH and others.
Since planetbeing took time off from the project in order to work on the iPhone 4 unlock, it was up to the community to continue with the release.
If you enjoy this work, please consider donating to the project at www.idroidproject.org in order to keep up with the growing costs for bandwidth.
It would also be nice if you would donate to the following people as well:
- Bluerise (http://www.blueri.se)- has done the main of the development work on iDroid and has contributed many hours of his time to creating a fantastic 'product' he is now in need of a new device since he had some problems with his iPhone 3G.
If you have any money still burning your pocket, have already donated to the above, and still insist on spending your hard earned money, consider sending a few units of currency to any of the people mentioned below.
Most of them can be found on the #iphonelinux channel on irc.osx86.hu or on the forum.
Our thanks go to (in no order of importance, everyone has worked hard):
If anyone is missing from the list above, then please feel free to bitch at alex.
- alex for the guide
- A_Nub and Nickpack for the updated OS X loadibec and oibc, the libusb, and for the hosting of course.