125 lines
3.3 KiB
Bash
125 lines
3.3 KiB
Bash
|
#!/bin/bash
|
||
|
# Purpose: Install ubertooth and crackle libraries
|
||
|
# Author: Paul Walko <paul@walko.org>
|
||
|
# Last updated on: 12/17/16
|
||
|
# ------------------------------------------------
|
||
|
|
||
|
# Setup
|
||
|
echo -e 'Installs the latest stable ubertooth release and/or crackle (git) release to /opt'
|
||
|
echo -e 'This script was only tested in Arch Linux (12/16). Your mileage may vary'
|
||
|
echo -e 'This script also assumes you have sudo access, as you will be prompted for your password\n'
|
||
|
|
||
|
INSTALL_DIR="/opt"
|
||
|
|
||
|
# help
|
||
|
function help {
|
||
|
echo -e 'Help:\n'
|
||
|
echo -e '-h: This message\n'
|
||
|
echo -e '-I: Custom installation directory; Defaults to '/opt/'\n'
|
||
|
echo -e '--remove-{libbtbb, ubertooth, crackle}: Removes respective program\n\n'
|
||
|
}
|
||
|
|
||
|
# Set install directory
|
||
|
while getopts ":h:I:" args; do
|
||
|
case "${args}" in
|
||
|
h)
|
||
|
help
|
||
|
;;
|
||
|
I)
|
||
|
INSTALL_DIR=${OPTARG}
|
||
|
;;
|
||
|
*)
|
||
|
;;
|
||
|
esac
|
||
|
done
|
||
|
|
||
|
# libbtbb
|
||
|
cd $INSTALL_DIR
|
||
|
if [[ $* == *--remove-libbtbb* ]]; then
|
||
|
# Remove libbtbb
|
||
|
echo -e 'WARNING: THIS WILL REMOVE ANY FILES/DIRECTORIES WITH "libbtbb" IN THEIR NAME \nContinue? (y/N)\n'
|
||
|
read yn
|
||
|
if [[ $yn == y ]]; then
|
||
|
suod rm *libbtbb*gz
|
||
|
cd *libbtbb*/build
|
||
|
sudo make uninstall
|
||
|
cd $INSTALL_DIR
|
||
|
sudo rm -r *libbtbb*
|
||
|
fi
|
||
|
elif ! ls | grep -q "libbtbb"; then
|
||
|
echo -e 'Installing libbtbb... (Ubertooth dependency)\n'
|
||
|
|
||
|
wget https://github.com/greatscottgadgets/libbtbb/archive/2015-10-R1.tar.gz -O libbtbb-2015-10-R1.tar.gz
|
||
|
tar xf libbtbb-2015-10-R1.tar.gz
|
||
|
cd libbtbb-2015-10-R1
|
||
|
mkdir build
|
||
|
cd build
|
||
|
cmake ..
|
||
|
make
|
||
|
sudo make install
|
||
|
else
|
||
|
echo -e 'libbtbb is already installed... skipping \nRun with "--remove-libbtbb" before installing new version\n'
|
||
|
fi
|
||
|
|
||
|
# ubertooth
|
||
|
cd $INSTALL_DIR
|
||
|
if [[ $* == *--remove-ubertooth* ]]
|
||
|
then
|
||
|
# Remove ubertooth
|
||
|
echo -e 'WARNING: THIS WILL REMOVE ANY FILES/DIRECTORIES WITH "ubertooth" IN THEIR NAME \nContinue? (y/N)\n'
|
||
|
read yn
|
||
|
if [[ $yn == y ]]; then
|
||
|
sudo rm *ubertooth*xz
|
||
|
cd *ubertooth*/host/build
|
||
|
sudo make uninstall
|
||
|
cd $INSTALL_DIR
|
||
|
sudo rm -r *ubertooth*
|
||
|
fi
|
||
|
elif ! type "ubertooth-util" > /dev/null; then
|
||
|
# Install ubertooth
|
||
|
echo -e 'Installing ubertooth...\n\n'
|
||
|
|
||
|
wget https://github.com/greatscottgadgets/ubertooth/releases/download/2015-10-R1/ubertooth-2015-10-R1.tar.xz -O ubertooth-2015-10-R1.tar.xz
|
||
|
tar xf ubertooth-2015-10-R1.tar.xz
|
||
|
cd ubertooth-2015-10-R1/host
|
||
|
mkdir build
|
||
|
cd build
|
||
|
cmake ..
|
||
|
make
|
||
|
sudo make install
|
||
|
else
|
||
|
# Already installed
|
||
|
echo -e 'ubertoooth is alrady installed... skipping \nRun with "--remove-ubertooth" before installing new version\n'
|
||
|
fi
|
||
|
|
||
|
# crackle
|
||
|
cd $INSTALL_DIR
|
||
|
if [[ $* == *--remove-crackle* ]]
|
||
|
then
|
||
|
# Remove crackle
|
||
|
echo -e 'Remove crackle? (y/N)\n'
|
||
|
read yn
|
||
|
if [[ $yn == y ]]; then
|
||
|
cd crackle
|
||
|
sudo make uninstall
|
||
|
cd $INSTALL_DIR
|
||
|
sudo rm -r crackle
|
||
|
fi
|
||
|
elif ! type "crackle" > /dev/null; then
|
||
|
echo -e 'Installing crackle... \n\n'
|
||
|
|
||
|
git clone https://github.com/mikeryan/crackle.git
|
||
|
cd crackle
|
||
|
make
|
||
|
sudo make install
|
||
|
else
|
||
|
# Already installed
|
||
|
echo -e 'crackle is alrady installed.. skipping \nRun with "--remove-crackle" before installing new version\n'
|
||
|
fi
|
||
|
|
||
|
|
||
|
echo -e 'Running ldconfig to fix some libraries... \n'
|
||
|
sudo ldconfig
|
||
|
|
||
|
echo -e 'If you plan to use wireshark to capture btle, be sure to follow the directions at the bottom of the page here to enable wireshark to recongize btle packets: \nhttps://github.com/greatscottgadgets/ubertooth/wiki/Capturing-BLE-in-Wireshark'
|