You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			138 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
			
		
		
	
	
			138 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Bash
		
	
#!/bin/bash
 | 
						|
 | 
						|
set -e
 | 
						|
set -o pipefail # Bashism
 | 
						|
 | 
						|
# You can put local mirrors here if you want
 | 
						|
kali_mirror=http://archive.kali.org/kali
 | 
						|
kalisec_mirror=http://archive.kali.org/kali-security
 | 
						|
 | 
						|
### DO NOT EDIT THE REST OF THIS FILE ###
 | 
						|
 | 
						|
public_kali_mirror=http://http.kali.org/kali
 | 
						|
public_kalisec_mirror=http://security.kali.org/kali-security
 | 
						|
 | 
						|
# Detect target architecture and filter args
 | 
						|
temp=""
 | 
						|
arch=$(dpkg --print-architecture)
 | 
						|
dist="kali-current"
 | 
						|
lb_opts=""
 | 
						|
while [ $# -gt 0 ]; do
 | 
						|
   	arg="$1"
 | 
						|
	case "$arg" in
 | 
						|
        -a|--arch|--architecture|--architectures)
 | 
						|
		arch="$2"
 | 
						|
		temp="$temp "'"'"$arg"'"'
 | 
						|
		temp="$temp "'"'"$2"'"'
 | 
						|
		shift
 | 
						|
		;;
 | 
						|
	--distribution)
 | 
						|
		dist="$2"
 | 
						|
		shift
 | 
						|
		;;
 | 
						|
	--variant)
 | 
						|
		variant="$2"
 | 
						|
		shift
 | 
						|
		;;
 | 
						|
	-p|--proposed-updates)
 | 
						|
		enable_pu="1"
 | 
						|
		;;
 | 
						|
	--)
 | 
						|
		# Skip the separator, it was added so that "lb config"
 | 
						|
		# doesn't barf on our own options, but now we are
 | 
						|
		# filtering them away assuming that the remaining ones
 | 
						|
		# are intended for lb config !
 | 
						|
		;;
 | 
						|
	*)
 | 
						|
		temp="$temp "'"'"$arg"'"'
 | 
						|
		;;
 | 
						|
	esac
 | 
						|
	shift
 | 
						|
done
 | 
						|
eval set -- "$temp"
 | 
						|
 | 
						|
# Resolve release name
 | 
						|
dist=$(curl -s $kali_mirror/dists/$dist/Release | awk '/^Codename:/ {print $2}')
 | 
						|
 | 
						|
# live-build doesn't work if --parent-debian-distribution is unknown of
 | 
						|
# debian-cd => we have to put a symlink so that it deals with kali like wheezy
 | 
						|
if [ ! -e ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd/$dist ]; then
 | 
						|
	if [ -w ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd ]; then
 | 
						|
		ln -sf wheezy ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd/$dist
 | 
						|
	else
 | 
						|
		echo "ERROR: Run this first:"
 | 
						|
		echo "ln -sf wheezy ${LIVE_BUILD:-/usr/share/live/build}/data/debian-cd/$dist"
 | 
						|
		exit 1
 | 
						|
	fi
 | 
						|
fi
 | 
						|
 | 
						|
# Define options that vary across architectures
 | 
						|
case "$arch" in
 | 
						|
    amd64)
 | 
						|
	lb_opts="$lb_opts --debian-installer live"
 | 
						|
    ;;
 | 
						|
    i386)
 | 
						|
	lb_opts="$lb_opts --debian-installer live --linux-flavours 686-pae"
 | 
						|
    ;;
 | 
						|
    armel|armhf)
 | 
						|
	lb_opts="$lb_opts --binary-images hdd --binary-filesystem ext4 --chroot-filesystem none"
 | 
						|
    ;;
 | 
						|
    *)
 | 
						|
	echo "WARNING: configuration not tested on arch $arch" >&2
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
# Setup configuration files from variant and options
 | 
						|
 | 
						|
# Drop all files that a former run might have put into place
 | 
						|
for file in $(cd kali-config && find . -type f); do
 | 
						|
    file=${file#./*/}
 | 
						|
    rm -f config/$file
 | 
						|
done
 | 
						|
rm -f config/archives/kali-proposed-updates.list.*
 | 
						|
 | 
						|
# Copy over all files from official kali configuration
 | 
						|
cp -rT kali-config/common config
 | 
						|
[ ! -d kali-config/release-$dist ] || cp -rT kali-config/release-$dist config
 | 
						|
[ ! -d kali-config/variant-$variant ] || cp -rT kali-config/variant-$variant config
 | 
						|
 | 
						|
if [ -n "$enable_pu" ]; then
 | 
						|
	mkdir -p config/archives
 | 
						|
	echo "deb $kali_mirror $dist-proposed-updates main contrib non-free" \
 | 
						|
		> config/archives/kali-proposed-updates.list.chroot
 | 
						|
	echo "deb $public_kali_mirror $dist-proposed-updates main contrib non-free" \
 | 
						|
		> config/archives/kali-proposed-updates.list.binary
 | 
						|
fi
 | 
						|
 | 
						|
lb config noauto \
 | 
						|
	--distribution "$dist" \
 | 
						|
	--debian-installer-distribution "$dist" \
 | 
						|
	--archive-areas "main contrib non-free" \
 | 
						|
	--bootstrap cdebootstrap \
 | 
						|
	--cdebootstrap-options "--keyring=/usr/share/keyrings/kali-archive-keyring.gpg --suite-config=wheezy" \
 | 
						|
	--keyring-packages kali-archive-keyring \
 | 
						|
	--updates false \
 | 
						|
	--backports false \
 | 
						|
	--source false \
 | 
						|
	--firmware-binary true \
 | 
						|
	--firmware-chroot true \
 | 
						|
	--mirror-bootstrap "$kali_mirror" \
 | 
						|
	--mirror-debian-installer "$kali_mirror" \
 | 
						|
	--mirror-chroot-security "$kalisec_mirror" \
 | 
						|
	--mirror-binary "$public_kali_mirror" \
 | 
						|
	--mirror-binary-security "$public_kalisec_mirror" \
 | 
						|
	--iso-application "Kali Linux" \
 | 
						|
	--iso-publisher "Kali" \
 | 
						|
	--iso-volume "Kali Live" \
 | 
						|
	--linux-packages linux-image \
 | 
						|
	--bootappend-live "boot=live username=root hostname=kali" \
 | 
						|
	$lb_opts \
 | 
						|
	"$@"
 | 
						|
 | 
						|
case "$dist" in
 | 
						|
    kali|moto)
 | 
						|
	# Don' use systemd for now
 | 
						|
	sed -i -e 's/systemd/sysvinit/' config/package-lists/live.list.chroot
 | 
						|
	;;
 | 
						|
esac
 |