Skip to content

Instantly share code, notes, and snippets.

@hyugogirubato
Created December 29, 2025 10:27
Show Gist options
  • Select an option

  • Save hyugogirubato/5f3b0b3dcb63300347f8802db936225b to your computer and use it in GitHub Desktop.

Select an option

Save hyugogirubato/5f3b0b3dcb63300347f8802db936225b to your computer and use it in GitHub Desktop.
Bash script to build and install libimobiledevice, usbmuxd, and related iOS device libraries from source on Debian/Ubuntu systems.
#!/bin/bash
# Exit script on any error
set -e
# Install necessary packages and dependencies
sudo apt update
sudo apt install -y \
build-essential \
checkinstall \
git \
git-lfs \
autoconf \
automake \
libtool-bin \
doxygen \
cython3 \
pkg-config \
libplist-dev \
libusbmuxd-dev \
libimobiledevice-dev \
libimobiledevice-glue-dev \
libusb-1.0-0-dev \
udev \
systemd \
libtatsu-dev \
libssl-dev \
usbmuxd \
libreadline-dev \
libcurl4-openssl-dev \
libzip-dev \
zlib1g-dev \
libfuse3-dev \
libxml2-dev \
gcc
# List of libraries to clone, build, and install
libraries=('libplist' 'usbmuxd' 'libimobiledevice' 'libirecovery' 'ifuse' 'libtatsu' 'idevicerestore' 'libimobiledevice-glue' 'ideviceinstaller' 'libideviceactivation' 'libusbmuxd')
# Loop through each library, clone, build and install
for library in "${libraries[@]}"; do
# Clone the library from GitHub
git clone "https://github.com/libimobiledevice/$library"
pushd "$library"
# Run autogen to generate configuration scripts, then build and install the library
./autogen.sh --prefix=/usr/local --enable-debug --without-cython
make
sudo make install
popd
# Clean up the cloned repository to save space
rm -rf "$library"
done
# Update the dynamic linker run-time bindings
sudo ldconfig
echo 'All libraries installed successfully.'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment