/ifuse

A fuse filesystem to access the contents of iOS devices

Primary LanguageCGNU Lesser General Public License v2.1LGPL-2.1

About
=====

A fuse filesystem implementation to access the contents of iOS devices.

Requirements
============

Development Packages of:
	libfuse (and the associated kernel modules)
	libimobiledevice
	libplist

Software:
	usbmuxd
	make
	autoheader
	automake
	autoconf
	libtool
	pkg-config
	gcc

Installation
============

To compile run:
	./autogen.sh
	./configure
	make
	sudo make install

Of course you could already use the tool from the src/ directory locally.

Usage
=====

To mount the media partition from the device:

	$ ifuse <mountpoint>

Note:
	If you mount your device as regular user, the system might complain that
	the file /etc/fuse.conf is not readable. It means you do not belong to the
	'fuse' group (see below).

To unmount as a regular user you must run:

	$ fusermount -u <mountpoint>

By default, ifuse (via the AFC protocol) gives access to the '/var/root/Media/'
chroot on the device (containing music/pictures). This is the right and safe 
way to access the device. However, if the device has been jailbroken, a full
view of the device's filesystem might be available using the following command
when mounting:

	$ ifuse --root <mountpoint>

Note that only PwnageTool and older jailbreak software installs the necessary
AFC2 service on the device to enable root filesystem usage. For instance 
blackra1n does not install it and thus does not enable root filesystem access!
Use with care as the AFC protocol was not made to access the root filesystem.

If using libimobiledevice >= 1.1.0, ifuse can also be used with the iTunes
file/document sharing feature. It allows you to exchange files with an
application on the device directly through it's documents folder by specifing
the application identifier like this:

	$ ifuse --documents <appid> <mountpoint>

The following example mounts the documents folder of the VLC app to /mnt:

	$ ifuse --documents org.videolan.vlc-ios /mnt

It is also possible to mount the sandboxed root folder of an application
using the --container parameter:

	$ ifuse --container <appid> <mountpoint>

If ideviceinstaller is installed, obtain the 'appid' (bundle identifier) using:
	$ ideviceinstaller -l

Addtional help can be shown using:

	$ ifuse --help

Setting up FUSE
===============

Note that on some systems, you may have to load the 'fuse' kernel
module first and to ensure that you are a member of the 'fuse' group:

	sudo modprobe fuse
	sudo adduser $USER fuse

You can check your membership of the 'fuse' group with:

	id | grep fuse && echo yes! || echo not yet...

If you have just added yourself, you will need to logout and log back
in for the group change to become visible.

Who/What/Where?
===============

Home:
	http://www.libimobiledevice.org

Code:
	git clone http://git.sukimashita.com/ifuse.git

Code (Mirror):
	git clone https://github.com/libimobiledevice/ifuse.git

Tickets:
	https://github.com/libimobiledevice/ifuse/issues

Mailing List:
	http://lists.libimobiledevice.org/mailman/listinfo/libimobiledevice-devel

IRC:
	irc://irc.freenode.net#libimobiledevice

Credits
=======

Apple, iPhone, iPod, iPad, Apple TV and iPod Touch are trademarks of Apple Inc.
ifuse is an independent software program and has not been
authorized, sponsored, or otherwise approved by Apple Inc.

README Updated on:
	2013-11-12