Because a new 3rd gen iPhone and iPod touch has a multiplex usb mode by Apple and udev cannot communicate thus we need libiphone, which a library to communicate with services running on Apple iPhone/iPod Touch devices. Here is how to compile them :
[root@jfklixsdomain libiphone-0.9.5]# ./configure
checking for a BSD-compatible install… /usr/bin/install -c
checking whether build environment is sane… yes
checking for a thread-safe mkdir -p… /bin/mkdir -p
checking for gawk… gawk
checking whether make sets $(MAKE)… yes
checking for a Python interpreter with version >= 2.3… python
checking for python… /usr/bin/python
checking for python version… 2.5
….
configure: creating ./config.status
config.status: creating Makefile
config.status: creating src/Makefile
config.status: creating include/Makefile
config.status: creating fdi/Makefile
config.status: creating dev/Makefile
config.status: creating tools/Makefile
config.status: creating swig/Makefile
config.status: creating libiphone-1.0.pc
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands
[root@jfklixsdomain libiphone-0.9.5]#
then make and make install :
[root@jfklixsdomain libiphone-0.9.5]# make
make all-recursive
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
Making all in src
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/src’
CC iphone.lo
CC lockdown.lo
CC AFC.lo
CC NotificationProxy.lo
CC userpref.lo
CC utils.lo
CC MobileSync.lo
CCLD libiphone.la
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/src’
Making all in include
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/include’
make[2]: Nothing to be done for `all’.
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/include’
Making all in fdi
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/fdi’
make[2]: Nothing to be done for `all’.
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/fdi’
Making all in swig
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
/usr/bin/swig -c++ -python -I../include -I/usr/include/libxml2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/python2.5 -I/usr/include -I../src -o iphone_wrap.cxx iphone.i
make all-am
make[3]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
CXX iphone_wrap.lo
iphone_wrap.cxx: In function ‘PyObject* _wrap_new_Date__SWIG_4(PyObject*, PyObject*)’:
iphone_wrap.cxx:9130: warning: deprecated conversion from string constant to ‘char*’
iphone_wrap.cxx:9130: warning: deprecated conversion from string constant to ‘char*’
iphone_wrap.cxx: In function ‘PyObject* _wrap_new_Date(PyObject*, PyObject*)’:
iphone_wrap.cxx:9191: warning: deprecated conversion from string constant to ‘char*’
iphone_wrap.cxx:9191: warning: deprecated conversion from string constant to ‘char*’
iphone_wrap.cxx: In function ‘PyObject* _wrap_Date_set_value(PyObject*, PyObject*)’:
iphone_wrap.cxx:9284: warning: deprecated conversion from string constant to ‘char*’
iphone_wrap.cxx:9284: warning: deprecated conversion from string constant to ‘char*’
iphone_wrap.cxx: In function ‘PyObject* _wrap_Date_get_value(PyObject*, PyObject*)’:
iphone_wrap.cxx:9330: warning: deprecated conversion from string constant to ‘char*’
iphone_wrap.cxx:9330: warning: deprecated conversion from string constant to ‘char*’
CXXLD _iphone.la
make[3]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
Making all in dev
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/dev’
make[2]: Nothing to be done for `all’.
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/dev’
Making all in tools
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/tools’
CC iphone_id-iphone_id.o
CCLD iphone_id
CC iphoneinfo-iphoneinfo.o
CCLD iphoneinfo
CC iphonesyslog-iphonesyslog.o
CCLD iphonesyslog
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/tools’
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
make[2]: Nothing to be done for `all-am’.
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
[root@jfklixsdomain libiphone-0.9.5]#[root@jfklixsdomain libiphone-0.9.5]# make install
Making install in src
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/src’
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/src’
test -z “/usr/local/lib” || /bin/mkdir -p “/usr/local/lib”
/bin/sh ../libtool –mode=install /usr/bin/install -c libiphone.la ‘/usr/local/lib’
libtool: install: /usr/bin/install -c .libs/libiphone.so.0.0.0 /usr/local/lib/libiphone.so.0.0.0
libtool: install: (cd /usr/local/lib && { ln -s -f libiphone.so.0.0.0 libiphone.so.0 || { rm -f libiphone.so.0 && ln -s libiphone.so.0.0.0 libiphone.so.0; }; })
libtool: install: (cd /usr/local/lib && { ln -s -f libiphone.so.0.0.0 libiphone.so || { rm -f libiphone.so && ln -s libiphone.so.0.0.0 libiphone.so; }; })
libtool: install: /usr/bin/install -c .libs/libiphone.lai /usr/local/lib/libiphone.la
libtool: install: /usr/bin/install -c .libs/libiphone.a /usr/local/lib/libiphone.a
libtool: install: chmod 644 /usr/local/lib/libiphone.a
libtool: install: ranlib /usr/local/lib/libiphone.a
libtool: finish: PATH=”/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/lib/qt4/bin:/usr/bin:/usr/sbin:/usr/lib/kde4/libexec:/bin:/sbin:/usr/X11R6/bin:/usr/games:/usr/local/bin:/usr/local/sbin:/usr/NX/bin:/usr/lib/qt4/bin:/usr/share/unsermake:/sbin” ldconfig -n /usr/local/lib
———————————————————————-
Libraries have been installed in:
/usr/local/libIf you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,-rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/src’
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/src’
Making install in include
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/include’
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/include’
make[2]: Nothing to be done for `install-exec-am’.
test -z “/usr/local/include” || /bin/mkdir -p “/usr/local/include”
/bin/mkdir -p ‘/usr/local/include/libiphone’
/usr/bin/install -c -m 644 libiphone/libiphone.h libiphone/lockdown.h libiphone/afc.h libiphone/notification_proxy.h libiphone/mobilesync.h ‘/usr/local/include/libiphone’
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/include’
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/include’
Making install in fdi
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/fdi’
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/fdi’
make[2]: Nothing to be done for `install-exec-am’.
test -z “/usr/local/share/hal/fdi/information/20thirdparty/” || /bin/mkdir -p “/usr/local/share/hal/fdi/information/20thirdparty/”
/usr/bin/install -c -m 644 31-apple-mobile-device.fdi ‘/usr/local/share/hal/fdi/information/20thirdparty/’
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/fdi’
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/fdi’
Making install in swig
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
make install-am
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
make[3]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
make[3]: Nothing to be done for `install-exec-am’.
test -z “/usr/local/lib/python2.5/site-packages/iphone” || /bin/mkdir -p “/usr/local/lib/python2.5/site-packages/iphone”
/bin/sh ../libtool –mode=install /usr/bin/install -c _iphone.la ‘/usr/local/lib/python2.5/site-packages/iphone’
libtool: install: warning: relinking `_iphone.la’
libtool: install: (cd /home/jfdesign/project/ipheth/libiphone-0.9.5/swig; /bin/sh /home/jfdesign/project/ipheth/libiphone-0.9.5/libtool –silent –tag CXX –mode=relink g++ -g -O2 -module -avoid-version -L/usr/lib/python2.5 -lpython2.5 -o _iphone.la -rpath /usr/local/lib/python2.5/site-packages/iphone iphone_wrap.lo ../src/libiphone.la -lplist++ -lplist -lxml2 -lglib-2.0 )
libtool: install: /usr/bin/install -c .libs/_iphone.soT /usr/local/lib/python2.5/site-packages/iphone/_iphone.so
libtool: install: /usr/bin/install -c .libs/_iphone.lai /usr/local/lib/python2.5/site-packages/iphone/_iphone.la
libtool: install: /usr/bin/install -c .libs/_iphone.a /usr/local/lib/python2.5/site-packages/iphone/_iphone.a
libtool: install: chmod 644 /usr/local/lib/python2.5/site-packages/iphone/_iphone.a
libtool: install: ranlib /usr/local/lib/python2.5/site-packages/iphone/_iphone.a
libtool: finish: PATH=”/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:/usr/local/sbin:/usr/lib/qt4/bin:/usr/bin:/usr/sbin:/usr/lib/kde4/libexec:/bin:/sbin:/usr/X11R6/bin:/usr/games:/usr/local/bin:/usr/local/sbin:/usr/NX/bin:/usr/lib/qt4/bin:/usr/share/unsermake:/sbin” ldconfig -n /usr/local/lib/python2.5/site-packages/iphone
———————————————————————-
Libraries have been installed in:
/usr/local/lib/python2.5/site-packages/iphoneIf you ever happen to want to link against installed libraries
in a given directory, LIBDIR, you must either use libtool, and
specify the full pathname of the library, or use the `-LLIBDIR’
flag during linking and do at least one of the following:
– add LIBDIR to the `LD_LIBRARY_PATH’ environment variable
during execution
– add LIBDIR to the `LD_RUN_PATH’ environment variable
during linking
– use the `-Wl,-rpath -Wl,LIBDIR’ linker flag
– have your system administrator add LIBDIR to `/etc/ld.so.conf’See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
———————————————————————-
test -z “/usr/local/lib/python2.5/site-packages/iphone” || /bin/mkdir -p “/usr/local/lib/python2.5/site-packages/iphone”
/usr/bin/install -c -m 644 __init__.py ‘/usr/local/lib/python2.5/site-packages/iphone’
Byte-compiling python modules…
__init__.py
Byte-compiling python modules (optimized versions) …
__init__.py
test -z “/usr/local/lib/python2.5/site-packages/iphone” || /bin/mkdir -p “/usr/local/lib/python2.5/site-packages/iphone”
/usr/bin/install -c -m 644 iphone.py ‘/usr/local/lib/python2.5/site-packages/iphone’
Byte-compiling python modules…
iphone.py
Byte-compiling python modules (optimized versions) …
iphone.py
test -z “/usr/local/include/libiphone/swig” || /bin/mkdir -p “/usr/local/include/libiphone/swig”
/usr/bin/install -c -m 644 iphone.i ‘/usr/local/include/libiphone/swig’
make[3]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/swig’
Making install in dev
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/dev’
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/dev’
make[2]: Nothing to be done for `install-exec-am’.
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/dev’
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/dev’
Making install in tools
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/tools’
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/tools’
test -z “/usr/local/bin” || /bin/mkdir -p “/usr/local/bin”
/bin/sh ../libtool –mode=install /usr/bin/install -c iphone_id iphoneinfo iphonesyslog ‘/usr/local/bin’
libtool: install: /usr/bin/install -c .libs/iphone_id /usr/local/bin/iphone_id
libtool: install: /usr/bin/install -c .libs/iphoneinfo /usr/local/bin/iphoneinfo
libtool: install: /usr/bin/install -c .libs/iphonesyslog /usr/local/bin/iphonesyslog
make[2]: Nothing to be done for `install-data-am’.
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/tools’
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5/tools’
make[1]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
make[2]: Entering directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
make[2]: Nothing to be done for `install-exec-am’.
test -z “/usr/local/lib/pkgconfig” || /bin/mkdir -p “/usr/local/lib/pkgconfig”
/usr/bin/install -c -m 644 libiphone-1.0.pc ‘/usr/local/lib/pkgconfig’
make[2]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
make[1]: Leaving directory `/home/jfdesign/project/ipheth/libiphone-0.9.5′
[root@jfklixsdomain libiphone-0.9.5]#
Then it’s time to compile the usbmuxd, extract the usbmuxd package, get into it, mkdir build, cd build, and :
[root@jfklixsdomain build]# cmake ..
— checking for module ‘libusb-1.0>=1.0.3’
— found libusb-1.0, version 1.0.6
— Found USB* REMINDER
* Remember to add a user named ‘usbmux’ with USB access permissions
* for the udev hotplugging feature to work out of the box.— Configuring done
— Generating done
— Build files have been written to: /home/jfdesign/project/ipheth/usbmuxd-1.0.0-rc2/build
[root@jfklixsdomain build]# make
Scanning dependencies of target libusbmuxd
[ 10%] Building C object libusbmuxd/CMakeFiles/libusbmuxd.dir/libusbmuxd.c.o
[ 20%] Building C object libusbmuxd/CMakeFiles/libusbmuxd.dir/sock_stuff.c.o
[ 30%] Building C object libusbmuxd/CMakeFiles/libusbmuxd.dir/__/common/utils.c.o
Linking C shared library libusbmuxd.so
[ 30%] Built target libusbmuxd
Scanning dependencies of target usbmuxd
[ 40%] Building C object daemon/CMakeFiles/usbmuxd.dir/main.c.o
[ 50%] Building C object daemon/CMakeFiles/usbmuxd.dir/usb-linux.c.o
[ 60%] Building C object daemon/CMakeFiles/usbmuxd.dir/log.c.o
[ 70%] Building C object daemon/CMakeFiles/usbmuxd.dir/__/common/utils.c.o
[ 80%] Building C object daemon/CMakeFiles/usbmuxd.dir/device.c.o
[ 90%] Building C object daemon/CMakeFiles/usbmuxd.dir/client.c.o
Linking C executable usbmuxd
[ 90%] Built target usbmuxd
Scanning dependencies of target iproxy
[100%] Building C object tools/CMakeFiles/iproxy.dir/iproxy.c.o
Linking C executable iproxy
[100%] Built target iproxy
[root@jfklixsdomain build]# make install
[ 30%] Built target libusbmuxd
[ 90%] Built target usbmuxd
[100%] Built target iproxy
Install the project…
— Install configuration: “”
— Installing: /usr/local/lib/pkgconfig/libusbmuxd.pc
— Installing: /usr/local/lib/libusbmuxd.so.1.0.0
— Installing: /usr/local/lib/libusbmuxd.so.1
— Installing: /usr/local/lib/libusbmuxd.so
— Installing: /usr/local/include/usbmuxd.h
— Installing: /usr/local/include/usbmuxd-proto.h
— Installing: /usr/local/sbin/usbmuxd
— Installing: /usr/local/bin/iproxy
— Removed runtime path from “/usr/local/bin/iproxy”
— Installing: /lib/udev/rules.d/85-usbmuxd.rules
[root@jfklixsdomain build]#
Now. you can play with function on libiphone for making some nice program.