Saturday, 21 January 2012
How To Install/Run OpeniBoot On iPhone 4/3GS, iPad, Apple TV 2G and iPod Touch 4G/3G
NOTE: Version 0.3 and above will not boot iDroid 2.6.32 series kernels without additional parameters being passed to the kernel.
IT IS STRONGLY ADVISED THAT YOU DO NOT ATTEMPT TO RUN NAND WRITE FUNCTIONS IN THE A4 VERSION AT THIS POINT IN TIME.
DOING SO WILL INEVITABLY CAUSE YOU TO NEED TO RESTORE YOUR DEVICE, MAY LEAVE PERMANENT NAND BLOCK DAMAGE AND MAY ALSO CAUSE GREMLINS TO CRAWL OUT OF YOUR ARSE.
(If you read this warning properly, really unless you know wtf you are looking at - leave it alone until we stablise it)
Build an ARM toolchain (this only needs to be done once - for subsequent builds this step can be omitted unless there has been a toolchain update):
sudo toolchain/build-toolchain.sh make
Wait, for a long time, as the toolchain is compiled.
Initialise Submodules git submodule init git submodule update
To run openiboot from recovery mode (a.k.a iboot), you’ll need to create an img3 image. To run openiboot from DFU mode, you'll need to create a bin.
apt-get install libusb-1.0-0 libusb-1.0-0-dev libreadline6-dev readline-common libreadline6 libreadline-dev texinfo cmake git-core build-essential texinfo libreadline-dev libssl-dev libusb-1.0-0-dev libpng12-dev libusb-dev autoconf automake libnewlib-dev scons.
Change into the openiboot subfolder :
To Build you need Change Directory :
For iPod Touch 1G, run: scons iPodTouch1G
For iPhone 2G, run: scons iPhone2G
For iPhone 3G, run: scons iPhone3G
For iPod Touch 2G, run: scons iPodTouch2G
For iPhone 3GS, run: scons iPhone3GS
For iPhone 4, run: scons iPhone4
For iPod Touch 4G, run: scons iPodTouch4G
For iPad 1G, run: scons iPad1G
For Apple TV 2G, run: scons aTV2G
Compile syringe: cd ../utils/syringe && make && cd ../../
Alternatively a Makefile has been provided in the openiboot subfolder should you prefer to use it this way - this is not covered by this README but is provided for your convenience should you wish to use it
Compile oibc: cd utils/oibc && make && cd ../../openiboot
If you're on linux, you'll need to install the following as /etc/udev/rules.d/51-android.rules:
SUBSYSTEM=="usb" ID_VENDOR_ID=="0bb4", MODE="0666"
SUBSYSTEM=="usb" ID_VENDOR_ID=="18d1", MODE="0666"
SUBSYSTEM=="usb" ID_VENDOR_ID=="05ac", MODE="0666"
Put your phone into recovery mode: hold home whilst powering on until you see the iTunes logo.
NOTE: For the 3GS, iPhone4, iPad and Apple TV 2G, you must put your device into DFU mode instead.
For iPhone 2G, iPhone 3G & iPod Touch 1G run (substituting device and revision with the actual device, for example: iphone_3g_openiboot.img3):
For newer devices run: (substituting device and revision with the actual device, for example: iphone_4_openiboot.bin): ../utils/syringe/utilities/loadibec device_revision_openiboot.bin
You should now see openiBoot on your phone, use the volume buttons to scroll to the console icon, then press home
Run the client: ../utils/oibc/oibc
NOTE: You cannot install openiboot on an iPhone 4, iPad or new bootrom 3GS/iPT2G - you can only run it
You should now see the same output on your computer, as is on your phone's screen.
Type: install and press return
OpeniBoot will then be flashed to your device's NOR - This will take a while, your NOR will be backed up during this process, and can be found in the current directory as norbackup.dump.
As of version 0.3 OpeniBoot now has a grub-style configurable menu system, OpeniBoot looks for /boot/menu.lst at boot. Below is an example menu.lst - put it in /boot (This section will be expanded upon at a later date, when newer device ports are further ahead)
kernel "(hd0,1)/idroid/zImage" "console=tty root=/dev/ram0 init=/init rw"
kernel "(hd0,1)/iX/zImage" "console=tty root=/dev/ram0 init=/init rw"
For more info : https://github.com/iDroid-Project/openiBoot