|author||Paul Sladen||2008-09-02 11:47:39 +0300|
|committer||Matt Colyer||2008-09-02 08:37:31 -0700|
Added --root option to use afc2, expand README
Diffstat (limited to 'README')
1 files changed, 94 insertions, 9 deletions
@@ -1,6 +1,10 @@
+ Apple iPhone/iPod Touch 1.0/1.1/1.1.1/1.2/1.3/2.0+
+ + iPod USB cable
You must have:
@@ -17,25 +21,106 @@ To compile run:
- sudo make install (if you want to install it into your system directories)
- libiphone-initconf (as the user you intend to user the library)
+ sudo make install # (if you want to install it into your system directories)
+ libiphone-initconf # (as the user you intend to user the library)
+On Ubuntu/Debian, you can do:
+ sudo apt-get install build-essential automake autoconf \
+ libgnutls-dev libusb-dev libfuse-dev libglib2.0-dev libxml2-dev
-IMPORTANT: Before using the library you must run "libiphone-initconf". It will
-generate keys and a host id for your system. It only needs to be run once but
-it MUST be run.
+Now comes the fun bit!
+== Generating keys ==
+IMPORTANT: Before using the library you must run "libiphone-initconf"
+as your own user (not root). It will generate keys and a host id for your
+system to be able to communicate with 'lockdownd' on the iPhone.
+It will probably take 5-10 minutes, but thankfully only needs to be
+run _once_. It MUST be run otherwise communication will not work:
+The generated keys are saved in '~/.config/libiphone/' in your home directory.
+== Tools ==
-There are currently 2 executables iphoneclient and ifuse, located in src/.
+There are currently two more executables 'ifuse' and 'iphoneclient',
+both located in src/.
-iphoneclient is a basic commandline interface, it just runs a few various operations.
+=== iFuse ===
+This is probably what you're after; this mounts a view of your
+iPhone/iPod Touch's filesystem over the USB interface using the native
+Apple protocol (AFC/"com.apple.afc").
ifuse is a Fuse filesystem which allows you to mount your iPhone to a directory
- ./src/ifuse mountpoint
+ ./src/ifuse <mountpoint> -s
- umount mountpoint
+ umount <mountpoint>
+(nb: '-s' is to force single-threaded mode, as ifuse maybe unstable without it).
+ mkdir ~/iphone
+ ifuse ~/iphone -s
+ ls -l ~/iphone
+ umount ~/iphone
+Currently ifuse (via the AFC protocol) only gives access to the
+'/var/root/Media/' chroot on the iPhone (containing music/pictures).
+If you have a device that has been jailedbreaked then an additional
+("com.apple.afc2") service will have been installed, without the chroot.
+On jailbroken devices only, you can do:
+ ifuse ~/iphone --root -s
+And this will mount a full view of the iPhone's filesystem.
+==== 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.
+=== iphoneclient ===
+'iphoneclient' is a basic commandline interface for testing, it just
+runs a few various test operations such as attempting to view/create a
+test file in the iPhone, but is mainly a developer tool.
+== Who/what/where? ==
+ git clone http://git.matt.colyer.name/2008/libiphone/