#281 ✓resolved

Connection issues because of ~/.config/libimobiledevice

Reported by Schnouki | August 28th, 2012 @ 03:31 PM | in 1.2.0 Release

I have an iPhone 3GS, iOS 5.1.1, currently not jailbroken, and a PC running Arch Linux (x86_64) with libimobiledevice 1.1.4 and usbmuxd 1.0.8.

When trying to run ideviceinfo as a normal user, it exited with code 141. When running it through strace I saw some socket communication ending with a SIGPIPE. When running the same command as root, no issue, everything worked fine.

So I ran them both through strace and compared the logs. The only relevant difference is the contents of $HOME/.config/libimobiledevice. In /root, it was something generated with an older version of libimobiledevice (15 July 2010). So I did the following tests:

  • Ran idevicepair unpair, pair, validate as my normal user, no difference.
  • Removed the config dir and redid the idevicepair dance, still no difference.
  • Copied /root/.config/libimobiledevice into my $HOME, chown'ed it, and ideviceinfo worked perfectly.
  • Moved it out, ran idevicepair again, ideviceinfo doesn't work anymore.

In the "correct" libimobiledevice directory, <device id>.pem is 251 bytes: "-----BEGIN RSA PUBLIC KEY-----", etc. In my $HOME, with current version of libimobiledevice, it's a 447 Kbytes binary blob:

$ file <device_id>.pem
<device_id>.pem: Mach-O executable acorn

(and in ideviceinfo DevicePublicKey is indeed a very very long string)

Any idea how to fix this? If you need more info please ask. I can also try git versions or try to git-bisect it.

Comments and changes to this ticket

  • Martin S.

    Martin S. August 28th, 2012 @ 05:22 PM

    • State changed from “new” to “open”
    • Tag set to ios 5.1.1, iphone 3gs, certificates, devicepublickey, ideviceinfo, pairing, x86_64
    • Milestone set to 1.2.0 Release
    • Milestone order changed from “190973” to “0”

    Thanks for the report. It looks like your device certificate is corrupt (having a binary blob is wrong).

    Is your device protected by a passcode?
    Could you run ideviceinfo when it fails but adding the "-d" argument and attach the output as file?

    A fix might be to simply delete the corrupt <device id>.pem in your ~/.config/libimobiledevice directory.

  • Schnouki

    Schnouki August 28th, 2012 @ 06:44 PM

    • Passcode: tried with and without, doesn't change anything.
    • Remove <device id.pem>: done it, but the one downloaded again by idevicepair is corrupted too.
    • When it fails, ideviceinfo -d has no output. (I can post you the log from usbmuxd if you want)

    One more thing. I ran strings <device_id>.pem, and apparently the blob is the IPSec "racoon" daemon, used in the "Corona" jailbreak. So it's very likely that it's a leftover of a failed jailbreak attempt (Linux versions of jailbreak tools are quite unreliable, and Windows versions don't work very well in VirtualBox...). I'll try to do a full restore with iTunes tomorrow and I'll let you know.

    Thanks for your help!

  • Martin S.

    Martin S. August 29th, 2012 @ 02:51 PM

    • Assigned user set to “Nikias Bassen”
    • Milestone order changed from “17” to “0”

    @Nikias: Possible that Corona breaks pairing here?!

  • Nikias Bassen

    Nikias Bassen August 30th, 2012 @ 01:09 PM

    Hi Schnouki,
    yes this is in fact an artifact of a failed jailbreak attempt... the only way to make your device connect again would be by recovering the original device public key (e.g. from your root folder?)
    Sorry for the inconenience...

  • Schnouki

    Schnouki August 30th, 2012 @ 04:40 PM

    Nikias, thanks a lot. I just did a full restore from iTunes and it fixed the problem, I now have a valid public key in ideviceinfo and when I run idevicepair.

    It's probably a rare issue if I'm the first one to mention it here, but I think it would be nice to at least check if the device certificate looks like a public key when running idevicepair.

    Anyway, it works now. Thanks for your help!

  • Martin S.

    Martin S. September 5th, 2012 @ 12:19 PM

    • State changed from “open” to “resolved”

    Looks like the issue is confirmed and caused by a failed jailbreak attempt.

    Thanks for reporting.

Please Sign in or create a free account to add a new ticket.

With your very own profile, you can contribute to projects, track your activity, watch tickets, receive and update tickets through your email and much more.

New-ticket Create new ticket

Create your profile

Help contribute to this project by taking a few moments to create your personal profile. Create your profile ยป

A project around supporting the iPhone in Linux.

See http://libimobiledevice.org

People watching this ticket