Redirects the standard usbmuxd socket to allow connections to local and remote usbmuxd instances so remote devices appear connected locally.
Copy usbfluxd binary to a location included in $PATH, for example /usr/local/sbin:
sudo cp usbfluxd /usr/local/sbin/
export PATH=/usr/local/sbin:${PATH}
Note: usbfluxd requires root permissions to run.
To start usbfluxd, run:
sudo usbfluxd
It will log to syslog by default. Usbfluxd can be run in foreground using -f, and also with increased verbosity by adding -v to the command line. Multiple -v can be passed.
Please be aware that all usbmuxd-aware apps like Xcode or iTunes need to be restarted so they will talk to usbfluxd instead of the original usbmuxd.
To stop usbfluxd immediately, run:
sudo killall usbfluxd
Also after stopping usbfluxd, remember to restart any app that relies on usbmuxd so it returns to the original state.
On Linux you may need to sudo systemctl restart usbmuxd
.
Development Packages of: libplist-2.0 libavahi-client-dev
Software: make autoheader automake autoconf libtool pkg-config gcc
To compile run:
# brew install make automake autoconf libtool pkg-config gcc libimobiledevice usbmuxd
git clone https://github.com/corellium/usbfluxd.git
cd usbfluxd
./autogen.sh
make
sudo make install
Also available from the Arch User Repository for Linux hosts: https://aur.archlinux.org/packages/usbfluxd/
Connecting your device over USB on Linux allows you to expose usbfluxd on port 5000 to another system on the same network.
Ensure usbmuxd
, socat
and usbfluxd
are installed.
Start the usbmuxd
daemon on Linux
sudo systemctl start usbmuxd
Start avahi-daemon
for small-scale mDNS
sudo avahi-daemon
Start usbfluxd
in the foreground
sudo usbfluxd -f -n
Expose /var/run/usbmuxd
on port 5000
sudo socat tcp-listen:5000,fork unix-connect:/var/run/usbmuxd
Choose any IP address from ip addr
as the source.
From the remote host (catch the remote usbfluxd and make it appear local).
# on the destination
export PATH=/usr/local/sbin:${PATH}
sudo usbfluxd -f -r 10.0.0.2:5000