Phone: iPhone SE
Operating System: Linux Mint 18.1(should work in Ubuntu as well)
It is done by compiling most of the sources yourself.
Only one library - usbmuxd
- must be installed as root
All others are installed in the home account.
Install necessary software for building the source packages.
To check-out and compile the needed packages from source, you have to install git first.
Open a terminal and do the following:
:~$ sudo apt-get install -y git
:~$ sudo apt-get install -y build-essential
:~$ sudo apt-get install -y libtool m4 automake
:~$ sudo apt-get install -y libfuse-dev
All new commands to mount and unmount the file-system of your iPhone,
will be installed in the sub-directory ${HOME}/usr/bin/
.
Create the sub-directory to store the source files of the packages to be compiled:
:~$ mkdir -p "$HOME/usr/src"
Set all required environment variables to ensure to build the packages from source as desired:
:~$ export PKG_CONFIG_PATH="${HOME}/usr/lib/pkgconfig:${PKG_CONFIG_PATH}"
:~$ export CPATH="${HOME}/usr/include:${CPATH}"
:~$ export MANPATH="${HOME}/usr/share/man:${MANPATH}"
:~$ export PATH="${HOME}/usr/bin:${PATH}"
:~$ export LD_LIBRARY_PATH="${HOME}/usr/lib:${LD_LIBRARY_PATH}"
Now put the last two export statements into your .bashrc, to be loaded every time you open a new terminal, otherwise you must type:
:~$ export PATH="${HOME}/usr/bin:${PATH}"
:~$ export LD_LIBRARY_PATH="${HOME}/usr/lib:${LD_LIBRARY_PATH}"
whenever you open a new terminal.
Clone all needed repositories from Github.
:~$ cd ~/usr/src
:~$ for x in libplist libusbmuxd usbmuxd libimobiledevice ifuse; do git clone https://github.com/libimobiledevice/${x}.git;done
Build and install the packages in the following order.
Build libplist
:~$ cd ~/usr/src/libplist
:~$ ./autogen.sh --prefix="$HOME/usr"
:~$ make && make install
Build libusbmuxd
:~$ cd ~/usr/src/libusbmuxd
:~$ ./autogen.sh --prefix="$HOME/usr"
:~$ make && make install
Build libimobiledevice
:~$ cd ~/usr/src/libimobiledevice
:~$ ./autogen.sh --prefix="$HOME/usr"
:~$ make && make install
Build usbmuxd
(The package usbmuxd must be installed with administrative rights, because it needs write access to /lib/udev/rules.d
and /lib/systemd/system
)
:~$ cd ~/usr/src/usbmuxd
:~$ ./autogen.sh --prefix="$HOME/usr"
:~$ make && sudo make install
Build ifuse
:~$ cd ~/usr/src/ifuse
:~$ ./autogen.sh --prefix="$HOME/usr"
:~$ make && make install
TESTING
It’s assumed that you put the two exports into your ~/.bashrc
as mentioned above.
Open a new terminal.
Connect your iPhone.
Create a mount point, where you want the content of your iPhone to appear.
:~$ mkdir -p ~/usr/mnt
Connect your iPhone to the computer and try to pair the iPhone with your computer.
:~$ idevicepair pair
If error occurs during validation, please enter the passcode on the device and retry. A trust dialog will be appeared on your device. You have to accept it as well
:~$ idevicepair pair
After successfully pairing the device, mount the file-system of your iPhone and check the content
:~$ ifuse ~/usr/mnt/
:~$ ls ~/usr/mnt/
To safely disconnect your iPhone, you have to unmount the file-system in ~/usr/mnt
first with fusermount.
:~$ fusermount -u ~/usr/mnt
Now, you can plug-off your iPhone again.
ERRORS AND SOLUTIONS
(1) configure: error: OpenSSL support explicitly requested but OpenSSL could not be found
:~$ sudo apt-get install libssl-dev
(2) configure: error: Could not link test program to Python. Maybe the main Python library has been installed in some non-standard library path. If so, pass it to configure, via the LDFLAGS environment variable.
Example: ./configure LDFLAGS=”-L/usr/non-standard-path/python/lib”
(You probably have to install the development version of the Python package for your distribution. The exact name of this package varies among them.)
:~$ sudo apt-get install python-dev