#48 ✓resolved
Martin S.

Failure to retrieve long plist with format information

Reported by Martin S. | June 7th, 2009 @ 11:58 AM | in 1.0 Release

In attempts to find out how to retrieve the equivialent to the "supported formats plist" earlier device generations have been sending after issuing a specific SCSI command the way to do it was actually trivial.

It is retrieved by sending a command plist with the domain "com.apple.mobile.iTunes" with the "GetValue" request to lockdownd. Basically what iphoneinfo is doing right now.

The issue here is though that the whole plist is somehow not retrieved correctly and libplist fails to parse it later.

The following code demonstrates this:

#! /usr/bin/env python


from libiphone.iPhone import * from libplist.PList import *


phone = iPhone() phone.set_debug_mask(DBGMASK_ALL) if not phone.init_device() : print "Couldn't find device, is it connected ?" exit(1)


lckd = phone.get_lockdown_client() if not lckd : print "Failed to start lockdown service." exit(1)


xml = """<plist> <dict>

&lt;key&gt;Domain&lt;/key&gt;
&lt;string&gt;com.apple.mobile.iTunes&lt;/string&gt;
&lt;key&gt;Request&lt;/key&gt;
&lt;string&gt;GetValue&lt;/string&gt;



</dict></plist>"""
plist = PListNode( xml ) lckd.send(plist) plist = lckd.receive()

The information contains things like what image formats are supported and information about the iTunes DB which is useful/needed for libgpod and friends.

Have not yet have time to investigate why it fails to retrieve the whole thing but from what I checked it only retrieves exactly 16300 bytes (perhaps it is related to what Matt discovered some while ago about some missing stuff in the usbmux protocol implementation).
All this using the current usbmuxd refactored version.

Comments and changes to this ticket

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

Attachments

Referenced by

Pages