iOS/iOS Resources/scripts/Install libimobiledevice/libinstaller.sh
2018-06-11 17:42:03 +10:00

227 lines
6.0 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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 were 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 "Dont 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