mirror of
https://github.com/bettercap/bettercap.git
synced 2025-03-12 04:36:03 -07:00
update raspbian and golang upgrade go from 1.15 to 1.16 upgrade libusb and npcap add debug to npcap install try nmap instead change to nmap remove deprecated sudo move from npcap to winpcap
74 lines
2.3 KiB
Bash
Executable File
74 lines
2.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -eu
|
|
|
|
PROGRAM="${1}"
|
|
shift
|
|
COMMAND="${*}"
|
|
|
|
IMAGE="https://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2020-02-14/2020-02-13-raspbian-buster-lite.zip"
|
|
GOLANG="https://golang.org/dl/go1.16.2.linux-armv6l.tar.gz"
|
|
|
|
REPO_DIR="${PWD}"
|
|
TMP_DIR="/tmp/builder"
|
|
MNT_DIR="${TMP_DIR}/mnt"
|
|
|
|
if ! systemctl is-active systemd-binfmt.service >/dev/null 2>&1; then
|
|
mkdir -p "/lib/binfmt.d"
|
|
echo ':qemu-arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\xff\xff:/usr/bin/qemu-arm-static:F' > /lib/binfmt.d/qemu-arm-static.conf
|
|
systemctl restart systemd-binfmt.service
|
|
fi
|
|
|
|
mkdir -p "${TMP_DIR}"
|
|
wget --show-progress -qcO "${TMP_DIR}/raspbian.zip" "${IMAGE}"
|
|
gunzip -c "${TMP_DIR}/raspbian.zip" > "${TMP_DIR}/raspbian.img"
|
|
truncate "${TMP_DIR}/raspbian.img" --size=+2G
|
|
parted --script "${TMP_DIR}/raspbian.img" resizepart 2 100%
|
|
|
|
LOOP_PATH="$(losetup --find --partscan --show "${TMP_DIR}/raspbian.img")"
|
|
e2fsck -y -f "${LOOP_PATH}p2"
|
|
resize2fs "${LOOP_PATH}p2"
|
|
partprobe "${LOOP_PATH}"
|
|
|
|
mkdir -p "${MNT_DIR}"
|
|
mountpoint -q "${MNT_DIR}" && umount -R "${MNT_DIR}"
|
|
mount -o rw "${LOOP_PATH}p2" "${MNT_DIR}"
|
|
mount -o rw "${LOOP_PATH}p1" "${MNT_DIR}/boot"
|
|
|
|
mount --bind /dev "${MNT_DIR}/dev/"
|
|
mount --bind /sys "${MNT_DIR}/sys/"
|
|
mount --bind /proc "${MNT_DIR}/proc/"
|
|
mount --bind /dev/pts "${MNT_DIR}/dev/pts"
|
|
mount | grep "${MNT_DIR}"
|
|
df -h
|
|
|
|
cp /usr/bin/qemu-arm-static "${MNT_DIR}/usr/bin"
|
|
cp /etc/resolv.conf "${MNT_DIR}/etc/resolv.conf"
|
|
|
|
mkdir -p "${MNT_DIR}/root/src/${PROGRAM}"
|
|
mount --bind "${REPO_DIR}" "${MNT_DIR}/root/src/${PROGRAM}"
|
|
|
|
cp "${MNT_DIR}/etc/ld.so.preload" "${MNT_DIR}/etc/_ld.so.preload"
|
|
touch "${MNT_DIR}/etc/ld.so.preload"
|
|
|
|
chroot "${MNT_DIR}" bin/bash -x <<EOF
|
|
set -eu
|
|
|
|
export LANG="C"
|
|
export LC_ALL="C"
|
|
export LC_CTYPE="C"
|
|
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/go/bin:/root/bin"
|
|
|
|
wget --show-progress -qcO /tmp/golang.tar.gz "${GOLANG}"
|
|
tar -C /usr/local -xzf /tmp/golang.tar.gz
|
|
export GOROOT="/usr/local/go"
|
|
export GOPATH="/root"
|
|
|
|
apt-get -y update
|
|
apt-get install wget libpcap-dev libusb-1.0-0-dev libnetfilter-queue-dev build-essential git
|
|
|
|
cd "/root/src/${PROGRAM}"
|
|
${COMMAND}
|
|
EOF
|
|
echo "Build finished"
|