Other contacts

Novi članci

Flickr Goodness


December 13, 2009 @ 23:41

iRecovery Fedora Howto

Some time while jailbreaking and unlocking process iPhone refuses to boot in normal mode and every time you restart your iPhone it enters in Recovery mode. This situation is named as recovery mode loop. If you are in a recovery mode loop (i.e. your phone enters recovery mode on every reboot).
To get the rid of recovery mode loop we use iRecovery, iRecovery is a libusb-based command line utility for Mac OS X and Linux (perhaps Windows too). It is able to talk to the iBoot/iBSS in Apple’s iPhone/iPod touch via USB. If you are on Windows then you need to install LibUsb-Win32 in order to run iRecovery.LibUsb-Win32 is a port of the USB library libusb the Windows operating system. The library allows user space applications to access any USB device on Windows.
There are a few gotchas on Fedora so here are step by step instrucions.

su -
yum install readline-devel git
git clone git://github.com/westbaer/irecovery.git
cd irecovery/

There is a bug in irecovery.c code so in order to make it compile I needed to delete line 323 containing this code:
signal(SIGINT, irecv_quit); // Close USB on ^C
Use vim, gedit or any other text editor or your choice and delete this line, because it won’t compile if you don’t remove it, and you will get this error:
irecovery.c:323: error: ‘SIGINT’ undeclared (first use in this function)
Now we can continue the compilation process:

ln -s /usr/include/readline .
make linux

Now you have iRecovery installed and can use the instructions on how to use it to Get Rid of iPhone from Recovery Mode Loop on Restart.

Filed under english, fedora, linux, tips&tricks


  1. Posted by Cliff

    February 2, 2010 @ 18:11

    I’m no programmer, but I just couldn’t bear the thought of using this program if ctrl-c didn’t clean up the USB connection properly. So I looked into it, and the solution to that SIGINT error is to add an include at the top of the irecovery.c file.


    I put it after the readline include, but before the “constants.h” include. Compiles fine right now.

    I hope this helps people!!!

  2. Posted by Cliff

    February 2, 2010 @ 18:13

    Gah. I dislike it when HTML handlers mangle comments. Let me try a few ways to get around it…

    #include <signal.h>

    #include [signal.h]
    (change the [] to less than/greater than respectively)

  3. Posted by valent

    February 2, 2010 @ 22:32


  4. Posted by max

    February 27, 2010 @ 23:37

    This wouldn’t compile for me. It complained about USB something or other. I downloaded the usb development libraries. Fedora:
    yum search /libusb/

    some stuff here….

    yum install libusb-devel.i386

RSS feed for comments on this post · TrackBack URI

Leave a Comment


    Flickr photostream

    SSL is required

    Meta meta :)