hi folks!
i have had a little bit of time today, so i was experimenting with my iphone. i wanted to gain access to the pictures on it without jailbraking [1]. and, clear and brief, it works! here are the necessary steps [2,3] on a ubuntu system …
- install libplist [4]
getting the sources: git clone git://github.com/JonathanBeck/libplist.git installing necessary packages (on ubuntu/debian systems): apt-get install build-essential cmake libglib2.0-dev libxml2-dev \ python-dev swig to compile run: mkdir build cd build cmake .. make && make install linking the libplist: cd /usr/lib ln -s /usr/local/lib/libplist.so.0.0.10 . ln -s libplist.so.0.0.10 libplist.so.0 ln -s libplist.so.0 libplist.so
getting the sources of the old version (necessary for libiphone-initconf): git clone http://git.matt.colyer.name/2008/libiphone/ installing necessary packages (on ubuntu/debian systems): apt-get install build-essential automake autoconf libtool libgnutls-dev \ libusb-dev libfuse-dev libglib2.0-dev libxml2-dev \ libreadline5-dev to compile run: ./autogen.sh ./configure make && make install and now everything again with the new version (its the simpliest way): git clone git://github.com/MattColyer/libiphone.git
getting the sources: git clone git://github.com/MattColyer/ifuse.git installing necessary packages (on ubuntu/debian systems): apt-get install build-essential automake autoconf \ libfuse-dev libglib2.0-dev to compile run: ./autogen.sh ./configure make && make install
run their utility to generate keys for iphone communication as the user you want to connect later: libiphone-initconf
mount the iphone’s root filesystem including the media partition: mount.fuse.ifuse -afc2 none /media/iPhone or mount the iphone’s media partition only: mount.fuse.ifuse none /media/iPhone
if you want it in a automatic way, do the following:
- edit /etc/fstab
add following line: none /media/iPhone fuse.mount.fuse.ifuse rw,nosuid,nodev,afc2,allow_other 0 0
write those lines into the file: <?xml version="1.0" encoding="UTF-8"?> <deviceinfo version="0.2"> <device> <match key="usb.vendor_id" int="05ac"> <match key="usb.product_id" int="1292"> <merge key="info.ignore" type="bool">true</merge> </match> </match> </device> </deviceinfo>
after those steps its very easy: plugin the usb-cable and for example nautilus will show you a “Apple, Inc. iPhone” device. if you want to see all the information i used to setup everything right, here are some links:
[1] ifuse main page
[2] easy installing
[3] older references
[4] github libplist
[5] github libiphone
[6] github ifuse