Installing iDroid (Linux)

From iDroidWiki

Revision as of 16:24, 20 November 2021 by Ddominator (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Purpose

This guide is intended for Linux users, Windows users must use a VM running Linux then follow this guide. If VirtualBox is the VM client to be used, please read this supplement guide regarding VirtualBox and USB.

This guide is aimed to help you get iDroid running on your iPhone 2G, 3G or iPod Touch 1G.

Disclaimer

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 Linux, we do not recommend you install iDroid on your device for the time being.

Requirements

Linux

Knowledge of Linux 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.

Note: loadibec and oibc tools are compiled under a 32bit system. If you want to execute them under your 64bit distribution, you have to install ia32 shared libraries, and i386 release of libusb-1.0, libusb-0.1 (I don't know why oibc require this version), readline and libgcc.

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.

Jailbreak

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.

Download

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 OS you are using. Linux-x86 for 32-bit, Linux-x86_64 for 64-bit, and OSX for Mac OS X.

7. Copy the files in the specific OS folder to the openiBoot folder. The openiBoot folder should then contain the following files:

loadibec
oibc
openiboot.img
linux (if you are using 64-bit Linux)
/tools folder

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 Folders, iPhone Explorer, Phone Disk or i-FunBox can be used on Windows (although afc2add must be installed with Cydia in order for it to connect to the device). For Linux, iFuse can be used but it is very time consuming to setup.

  1. SSH into the device (this should be fairly clear to any beginner iPhone user by now) and navigate to /private/var/.
  2. 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.
  3. 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.
  4. 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.

Automated Extraction

  1. Dripwn by James Munnelly (OSX) (http://www.idroidproject.org/wiki/Dripwn) - This will only get the zephyr drivers. This will not extract the wifi drivers.
  2. Ninn's Extraction Technique (Linux) (http://www.idroidproject.org/wiki/Extraction_Technique) - This is a shell script to be run in Linux, and you need the iDevice's ipsw file (the script will download it for you if you don't have it). A Windows Version of this is bundled with NAiDroid Auto-Installer

Manual Extraction

Install iokittools from cydia

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

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

This command will automatically extract the zephyr2.bin for iPod Touch 1G and put it in the right folder.

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.

  1. Go to http://www.marvell.com/support.html
  2. Under "Choose a platform", select "Linux 2.6 - Fedora".
  3. Click the Search button under the drop down box.
  4. Download and extract the SD-8686-* zip archive.
  5. Rename helper_sd.bin to sd8686_helper.bin
  6. Keep sd8686.bin and sd8686_helper.bin in a safe place for later.

N.B. Ninn's Extraction Method automatically gets the Wi-Fi firmware files.

Transferring the firmware files

Once all extraction has finished, you should end up with the following files:

  1. zephyr_aspeed.bin and zephyr_main.bin (iPhone 2G)
  2. zephyr2.bin (iPhone 3G and iPod Touch 1G)
  3. 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:

cd Desktop/iDroid/openiBoot

2. Type these commands into the terminal window (don't forget to enter your password when asked):

sudo apt-get install libusb-1.0-0 libusb-1.0-0-dev libreadline6-dev readline-common libreadline6 libreadline-dev

Please note that the apt-get or aptitude command is only for Debian or Ubuntu distros. Use the appropriate command for your Linux distro, for example emerge or portage for Gentoo, yum for Fedora, and yast for Slackware distros.

3. 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. For OS X and Windows users (using virtual machines), don't forget to kill iTunesHelper or else iTunes will automatically open upon detecting an iDevice in Recovery Mode.

4. 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.

5. 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.

6. 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.

7. In the terminal window type the following command:

sudo ./oibc

Do not press enter yet - this is where your quick reflexes will pay off.

8. 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.

9. In the terminal window type this command:

install
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.

10. Type this command in the terminal:

reboot

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)

Extras

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:

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.

Credits

Personal tools
Namespaces
Variants
Actions
Wiki
Community
Toolbox