227 lines
6.0 KiB
Bash
Executable File
227 lines
6.0 KiB
Bash
Executable File
#!/bin/bash
|
||
#######################################################################
|
||
#
|
||
# Project......: libinstaller.sh
|
||
# Creator......: matteyeux
|
||
# Description..: Script to install libimobiledevice on OS X & Debian Distros
|
||
# initials scripts: brew.sh & autobuild.sh by DarkMalloc
|
||
# Type.........: Public
|
||
#
|
||
######################################################################
|
||
# Language :
|
||
# bash
|
||
# Version : 0.2
|
||
#
|
||
# Change Log
|
||
# ==========
|
||
#
|
||
# ===============================================================
|
||
# Date | Who | What
|
||
# ---------------------------------------------------------------
|
||
# 27/12/15 | Mathieu Hautebas | Script creation
|
||
# ---------------------------------------------------------------
|
||
# 10/03/16 | HanSheng Zhang | Fix Stack overflow caused by naming issues
|
||
# ---------------------------------------------------------------
|
||
|
||
function apt-get(){
|
||
sudo apt-get install -y git
|
||
sudo apt-get install -y build-essential
|
||
sudo apt-get install -y make
|
||
sudo apt-get install -y autoconf
|
||
sudo apt-get install -y automake
|
||
sudo apt-get install -y libtool
|
||
sudo apt-get install -y openssl
|
||
sudo apt-get install -y tar
|
||
sudo apt-get install -y perl
|
||
sudo apt-get install -y binutils
|
||
sudo apt-get install -y gcc
|
||
sudo apt-get install -y libstdc++6-dev
|
||
sudo apt-get install -y libc6-dev
|
||
sudo apt-get install -y libssl-dev
|
||
sudo apt-get install -y libusb-1.0
|
||
sudo apt-get install -y gcc4.2
|
||
sudo apt-get install -y g++
|
||
sudo apt-get install -y libcurl4-gnutls-dev
|
||
sudo apt-get install -y fuse
|
||
sudo apt-get install -y libxml2-dev
|
||
|
||
sudo apt-get install -y libgfortran1
|
||
sudo apt-get install -y libgfortran2
|
||
sudo apt-get install -y libgfortran
|
||
sudo apt-get install -y libgcc1
|
||
sudo apt-get install -y libreadline-dev
|
||
sudo apt-get install -y libglib2.0-dev
|
||
sudo apt-get install -y libzip-dev
|
||
sudo apt-get install -y libclutter-1.0-dev
|
||
sudo apt-get install -y libgtk2.0-dev
|
||
sudo apt-get install -y libclutter-gtk-1.0-dev
|
||
sudo apt-get install -y lib32bz2-dev
|
||
sudo apt-get install -y libfuse-dev
|
||
|
||
sudo apt-get install -y subversion
|
||
sudo apt-get install -y cython
|
||
sudo apt-get install -y python-2.7
|
||
sudo apt-get install -y python2.7-numpy
|
||
sudo apt-get install -y libncurses4
|
||
sudo apt-get install -y libncurses5
|
||
sudo apt-get install -y ncurses-base
|
||
}
|
||
|
||
function brewfunc(){
|
||
# Install Hombrew.
|
||
if ! type "brew" > /dev/null; then
|
||
echo "brew Doesn't Exist.Installing"
|
||
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
|
||
|
||
else
|
||
echo "Brew Exists. Using"
|
||
fi
|
||
|
||
|
||
# Install command-line tools using Homebrew.
|
||
|
||
# Ask for the administrator password upfront.
|
||
sudo -v
|
||
|
||
# Keep-alive: update existing `sudo` time stamp until the script has finished.
|
||
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
|
||
|
||
echo "Make sure we’re using the latest Homebrew."
|
||
brew update
|
||
|
||
echo "Upgrade any already-installed formulae."
|
||
brew upgrade
|
||
|
||
echo "Install GNU core utilities (those that come with OS X are outdated)".
|
||
echo "Don’t forget to add `$(brew --prefix coreutils)/libexec/gnubin` to `$PATH`".
|
||
brew install coreutils
|
||
sudo ln -s /usr/local/bin/gsha256sum /usr/local/bin/sha256sum
|
||
|
||
echo " Install some other useful utilities like `sponge`".
|
||
brew install moreutils
|
||
echo "Install GNU `find`, `locate`, `updatedb`, and `xargs`, `g`-prefixed".
|
||
brew install findutils
|
||
echo "Install GNU `sed`, overwriting the built-in `sed`".
|
||
brew install gnu-sed --with-default-names
|
||
|
||
echo "Install Development Packages";
|
||
brew install libxml2
|
||
brew install libzip
|
||
brew install libplist
|
||
brew install openssl
|
||
brew install clutter
|
||
brew install cogl
|
||
brew install usbmuxd
|
||
|
||
|
||
# Install Software;
|
||
brew install automake
|
||
brew install cmake
|
||
brew install colormake
|
||
brew install autoconf
|
||
brew install libtool
|
||
brew install pkg-config
|
||
brew install gcc
|
||
brew install libusb
|
||
brew install homebrew/fuse/ifuse
|
||
brew install glib
|
||
|
||
# Install Optional;
|
||
brew install screenfetch
|
||
brew install Caskroom/cask/osxfuse
|
||
|
||
# Install extras;
|
||
brew install bfg
|
||
brew install binutils
|
||
brew install binwalk
|
||
brew install cifer
|
||
brew install dex2jar
|
||
brew install dns2tcp
|
||
brew install fcrackzip
|
||
brew install foremost
|
||
brew install hashpump
|
||
brew install hydra
|
||
brew install john
|
||
brew install knock
|
||
brew install nmap
|
||
brew install pngcheck
|
||
brew install socat
|
||
brew install sqlmap
|
||
brew install tcpflow
|
||
brew install tcpreplay
|
||
brew install tcptrace
|
||
brew install ucspi-tcp # `tcpserver` etc.
|
||
brew install xz
|
||
|
||
# Install other useful binaries.
|
||
brew install ack
|
||
#brew install exiv2
|
||
brew install git
|
||
#brew install imagemagick --with-webp
|
||
brew install lua
|
||
brew install lynx
|
||
brew install p7zip
|
||
brew install pigz
|
||
|
||
# Install Node.js. Note: this installs `npm` too, using the recommended
|
||
# installation method.
|
||
brew install node
|
||
|
||
# Remove outdated versions from the cellar.
|
||
brew cleanup
|
||
}
|
||
|
||
function autobuild(){
|
||
successlibs=()
|
||
failedlibs=()
|
||
libs=( "libplist" "libusbmuxd" "libimobiledevice" "usbmuxd" "libirecovery" \
|
||
"ideviceinstaller" "libideviceactivation" "idevicerestore" "sbmanager" "ifuse" )
|
||
|
||
spinner() {
|
||
# What On Earth Is This?
|
||
local pid=$1
|
||
local delay=0.75
|
||
local spinstr='|/-\'
|
||
echo "$pid" > "/tmp/.spinner.pid"
|
||
while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
|
||
local temp=${spinstr#?}
|
||
printf " [%c] " "$spinstr"
|
||
local spinstr=$temp${spinstr%"$temp"}
|
||
sleep $delay
|
||
printf "\b\b\b\b\b\b"
|
||
done
|
||
printf " \b\b\b\b"
|
||
}
|
||
|
||
buildlibs() {
|
||
for i in "${libs[@]}"
|
||
do
|
||
echo -e "\033[1;32mFetching $i..."
|
||
git clone https://github.com/libimobiledevice/${i}.git
|
||
cd $i
|
||
echo -e "\033[1;32mConfiguring $i..."
|
||
./autogen.sh
|
||
./configure
|
||
echo -e "\033[1;32mBuilding $i..."
|
||
make && sudo make install
|
||
echo -e "\033[1;32mInstalling $i..."
|
||
cd ..
|
||
done
|
||
echo -e "\033[0m"
|
||
}
|
||
|
||
function buildr {
|
||
buildlibs
|
||
}
|
||
echo -e "\033[1;37mLibimobiledevice library build script - Elrhk 2015"
|
||
buildr
|
||
}
|
||
|
||
if [[ $(uname) == 'Linux' ]]; then
|
||
apt-get
|
||
autobuild
|
||
exit 1
|
||
elif [[ $(uname) == 'Darwin' ]]; then
|
||
brewfunc
|
||
autobuild
|
||
fi |