1*cf5a6c84SAndroid Build Coastguard Worker#!/bin/echo Try "scripts/mkroot.sh busybox" 2*cf5a6c84SAndroid Build Coastguard Worker 3*cf5a6c84SAndroid Build Coastguard Workerdownload a5d40ca0201b20909f7a8a561adf57adccc8a877 \ 4*cf5a6c84SAndroid Build Coastguard Worker http://www.busybox.net/downloads/busybox-1.36.1.tar.bz2 5*cf5a6c84SAndroid Build Coastguard Worker 6*cf5a6c84SAndroid Build Coastguard Worker# 4 commands: ash, route, udhcpc, stty 7*cf5a6c84SAndroid Build Coastguard Worker 8*cf5a6c84SAndroid Build Coastguard Workersetupfor busybox 9*cf5a6c84SAndroid Build Coastguard Workermake defconfig && 10*cf5a6c84SAndroid Build Coastguard Worker# Busybox checks for host bzip2, which toybox does not provide. 11*cf5a6c84SAndroid Build Coastguard Workersed -i 's/^bzip2/true bzip2/' scripts/{mkconfigs,embedded_scripts} && 12*cf5a6c84SAndroid Build Coastguard Worker# zap script that wants diff 13*cf5a6c84SAndroid Build Coastguard Workerln -sf /bin/true scripts/generate_BUFSIZ.sh && 14*cf5a6c84SAndroid Build Coastguard Workerecho '#define COMMON_BUFSIZE (4096) 15*cf5a6c84SAndroid Build Coastguard Workerextern char bb_common_bufsiz1[]; 16*cf5a6c84SAndroid Build Coastguard Worker#define setup_common_bufsiz()' > include/common_bufsiz.h && 17*cf5a6c84SAndroid Build Coastguard WorkerLDFLAGS=--static make SKIP_STRIP=y -j $(nproc) && 18*cf5a6c84SAndroid Build Coastguard Workercp busybox "$ROOT/bin" && 19*cf5a6c84SAndroid Build Coastguard Workermake busybox.links && 20*cf5a6c84SAndroid Build Coastguard Workermkdir -p "$ROOT/busybox" || exit 1 21*cf5a6c84SAndroid Build Coastguard Workerwhile read i; do ln -sf /bin/busybox "$ROOT/busybox/$(basename "$i")" || exit 1 22*cf5a6c84SAndroid Build Coastguard Workerdone < busybox.links 23*cf5a6c84SAndroid Build Coastguard Workercp .config "$ROOT/../busybox-config" 24*cf5a6c84SAndroid Build Coastguard Workercleanup 25*cf5a6c84SAndroid Build Coastguard Worker 26*cf5a6c84SAndroid Build Coastguard Worker# busybox ash doesn't support $(<file) 27*cf5a6c84SAndroid Build Coastguard Worker#ln -sf busybox "$ROOT/bin/sh" && 28*cf5a6c84SAndroid Build Coastguard Worker#mkdir -p "$ROOT/etc/rc" && 29*cf5a6c84SAndroid Build Coastguard Worker#echo '[ -z "$CONSOLE" ] && CONSOLE="$(cat /sys/class/tty/console/active)"' > \ 30*cf5a6c84SAndroid Build Coastguard Worker# "$ROOT/etc/rc/busybox.sh" && 31*cf5a6c84SAndroid Build Coastguard Worker 32*cf5a6c84SAndroid Build Coastguard Workercat > "$ROOT"/etc/dhcp.sh << 'EOF' && 33*cf5a6c84SAndroid Build Coastguard Worker#!/bin/sh 34*cf5a6c84SAndroid Build Coastguard Worker 35*cf5a6c84SAndroid Build Coastguard Worker[ "$1" = bound ] || exit 36*cf5a6c84SAndroid Build Coastguard Worker[ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" 37*cf5a6c84SAndroid Build Coastguard Worker[ -n "$subnet" ] && NETMASK="netmask $subnet" 38*cf5a6c84SAndroid Build Coastguard Workerifconfig $interface $ip $BROADCAST $NETMASK 39*cf5a6c84SAndroid Build Coastguard Worker[ -n "$router" ] && exit 40*cf5a6c84SAndroid Build Coastguard Workerecho "deleting routers" 41*cf5a6c84SAndroid Build Coastguard Workerwhile route del default gw 0.0.0.0 dev $interface; do :; done 42*cf5a6c84SAndroid Build Coastguard Workermetric=0 43*cf5a6c84SAndroid Build Coastguard Workerfor i in $router; do 44*cf5a6c84SAndroid Build Coastguard Workerroute add default gw $i dev $interface metric $((metric++)) 45*cf5a6c84SAndroid Build Coastguard Workerdone 46*cf5a6c84SAndroid Build Coastguard WorkerEOF 47*cf5a6c84SAndroid Build Coastguard Workerchmod +x "$ROOT"/etc/dhcp.sh || exit 1 48*cf5a6c84SAndroid Build Coastguard Worker 49