xref: /aosp_15_r20/external/toybox/mkroot/packages/dropbear (revision cf5a6c84e2b8763fc1a7db14496fd4742913b199)
1*cf5a6c84SAndroid Build Coastguard Worker#!/bin/echo Try "mkroot/mkroot.sh dropbear"
2*cf5a6c84SAndroid Build Coastguard Worker
3*cf5a6c84SAndroid Build Coastguard Worker# Example overlay file, adding dropbear (which requires zlib)
4*cf5a6c84SAndroid Build Coastguard Worker
5*cf5a6c84SAndroid Build Coastguard Workerecho === download source
6*cf5a6c84SAndroid Build Coastguard Worker
7*cf5a6c84SAndroid Build Coastguard Workerdownload e6d119755acdf9104d7ba236b1242696940ed6dd \
8*cf5a6c84SAndroid Build Coastguard Worker  http://downloads.sf.net/libpng/zlib-1.2.11.tar.gz
9*cf5a6c84SAndroid Build Coastguard Worker
10*cf5a6c84SAndroid Build Coastguard Workerdownload 9719ea91b5ce8d93ee9a50b5c3a5bcd628736181 \
11*cf5a6c84SAndroid Build Coastguard Worker  https://matt.ucc.asn.au/dropbear/releases/dropbear-2022.82.tar.bz2
12*cf5a6c84SAndroid Build Coastguard Worker
13*cf5a6c84SAndroid Build Coastguard Workerecho === Native build static zlib
14*cf5a6c84SAndroid Build Coastguard Worker
15*cf5a6c84SAndroid Build Coastguard Workersetupfor zlib
16*cf5a6c84SAndroid Build Coastguard Worker# They keep checking in broken generated files.
17*cf5a6c84SAndroid Build Coastguard Workerrm -f Makefile zconf.h &&
18*cf5a6c84SAndroid Build Coastguard WorkerCC=${CROSS_COMPILE}cc LD=${CROSS_COMPILE}ld AS=${CROSS_COMPILE}as ./configure &&
19*cf5a6c84SAndroid Build Coastguard Workermake -j $(nproc) || exit 1
20*cf5a6c84SAndroid Build Coastguard Worker
21*cf5a6c84SAndroid Build Coastguard Worker# do _not_ cleanup zlib, we need the files we just built for dropbear
22*cf5a6c84SAndroid Build Coastguard Worker
23*cf5a6c84SAndroid Build Coastguard Workerecho === $HOST Native build static dropbear
24*cf5a6c84SAndroid Build Coastguard Worker
25*cf5a6c84SAndroid Build Coastguard Workersetupfor dropbear
26*cf5a6c84SAndroid Build Coastguard Worker# Repeat after me: "autoconf is useless"
27*cf5a6c84SAndroid Build Coastguard Workerecho 'echo "$@"' > config.sub &&
28*cf5a6c84SAndroid Build Coastguard WorkerZLIB="$(echo ../zlib*)" &&
29*cf5a6c84SAndroid Build Coastguard WorkerCC="$CROSS_COMPILE"cc CFLAGS="-I $ZLIB -O2" LDFLAGS="-L $ZLIB" ./configure --enable-static \
30*cf5a6c84SAndroid Build Coastguard Worker  --disable-wtmp --host="$(basename "$CROSS_COMPILE" | sed 's/-$//')" &&
31*cf5a6c84SAndroid Build Coastguard Workersed -i 's@/usr/bin/dbclient@ssh@' options.h &&
32*cf5a6c84SAndroid Build Coastguard Workersed -i 's@\(#define NON_INETD_MODE\) 1@\1 0@' default_options.h &&
33*cf5a6c84SAndroid Build Coastguard Workermake -j $(nproc) PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" MULTI=1 SCPPROGRESS=1 &&
34*cf5a6c84SAndroid Build Coastguard Worker${CROSS_COMPILE}strip dropbearmulti &&
35*cf5a6c84SAndroid Build Coastguard Workermkdir -p "$ROOT"/{bin,etc/{rc,dropbear},var/log} &&
36*cf5a6c84SAndroid Build Coastguard Workertouch "$ROOT"/var/log/lastlog &&
37*cf5a6c84SAndroid Build Coastguard Workercp dropbearmulti "$ROOT"/bin || exit 1
38*cf5a6c84SAndroid Build Coastguard Workerfor i in "$ROOT"/bin/{ssh,dropbear,scp,dropbearkey}
39*cf5a6c84SAndroid Build Coastguard Workerdo
40*cf5a6c84SAndroid Build Coastguard Worker  ln -s dropbearmulti $i || exit 1
41*cf5a6c84SAndroid Build Coastguard Workerdone
42*cf5a6c84SAndroid Build Coastguard Worker# We didn't cleanup zlib
43*cf5a6c84SAndroid Build Coastguard Workerunset ZLIB
44*cf5a6c84SAndroid Build Coastguard Workerrm -rf ../zlib-*
45*cf5a6c84SAndroid Build Coastguard Worker# cleanup dropbear
46*cf5a6c84SAndroid Build Coastguard Workercleanup
47*cf5a6c84SAndroid Build Coastguard Worker
48*cf5a6c84SAndroid Build Coastguard Worker# user root password root, user guest no password
49*cf5a6c84SAndroid Build Coastguard Workerecho -e 'root:$1$939UTPzb$/PfVYAsF2Hqi/AQ3UBjbK/:::::::\nguest::::::::' > "$ROOT"/etc/shadow &&
50*cf5a6c84SAndroid Build Coastguard Workerchmod 600 "$ROOT"/etc/shadow &&
51*cf5a6c84SAndroid Build Coastguard Worker
52*cf5a6c84SAndroid Build Coastguard Workerecho 'netcat -p 22 -L dropbear -iRB &' > "$ROOT"/etc/rc/dropbear &&
53*cf5a6c84SAndroid Build Coastguard Worker
54*cf5a6c84SAndroid Build Coastguard Worker# file to run on host to ssh into guest
55*cf5a6c84SAndroid Build Coastguard Workerecho 'ssh -o "UserKnownHostsFile=/dev/null" -o "StrictHostKeyChecking=no" ${1:+$1@}127.0.0.1 -p 2222' > "$OUTPUT"/ssh2dropbear.sh &&
56*cf5a6c84SAndroid Build Coastguard Workerchmod +x "$OUTPUT"/ssh2dropbear.sh
57*cf5a6c84SAndroid Build Coastguard Worker
58*cf5a6c84SAndroid Build Coastguard Worker# Forward 127.0.0.1:2222 into qemu instance
59*cf5a6c84SAndroid Build Coastguard WorkerQEMU_MORE+=" -nic user,hostfwd=tcp:127.0.0.1:2222-:22"
60