xref: /aosp_15_r20/external/toybox/mkroot/packages/busybox (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
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