blob: 50def8623cdf16ba63b4154ca03f30a8d4a836b2 [file] [log] [blame]
Joel Fernandes301e4552018-04-05 22:46:19 -07001#!/bin/bash
2
Joel Fernandes9d767b42018-04-05 22:55:24 -07003spath="$(dirname "$(readlink -f "$0")")"
Joel Fernandes4e19ccd2018-07-08 17:23:07 -07004source $spath/utils/support
Joel Fernandes9d767b42018-04-05 22:55:24 -07005source $spath/utils/banners
6
Joel Fernandes301e4552018-04-05 22:46:19 -07007ARCH=$1
8DISTRO=$2
9TDIR=$3
10OUT_TMP=$4
11PACKAGES=$5
Joel Fernandes (Google)57b3fd22018-05-29 16:27:03 -070012EXTRA_FILES="$(cat $6)"
Joel Fernandes (Google)4b216fd2018-05-29 12:33:27 -070013INSTALL_BCC=$7
14SKIP_COMPRESS=$8
Joel Fernandes301e4552018-04-05 22:46:19 -070015
Joel Fernandes (Google)4f711082018-05-29 16:23:15 -070016time qemu-debootstrap --arch $ARCH --include=$PACKAGES \
Joel Fernandes301e4552018-04-05 22:46:19 -070017 $DISTRO $OUT_TMP http://deb.debian.org/debian/
18
19# Some reason debootstrap leaves these mounted
20umount $OUT_TMP/proc/sys/fs/binfmt_misc || true
21umount $OUT_TMP/proc || true
22
23# Make bash the default shell
24chroot $OUT_TMP rm /bin/sh || true
25chroot $OUT_TMP ln -s /bin/bash /bin/sh || true
26cp $spath/addons/bashrc $OUT_TMP/.bashrc
Joel Fernandesfa4b8cd2018-07-02 20:08:07 -070027cp $spath/addons/bashrc.common $OUT_TMP/.bashrc.common
28cp $spath/addons/bashrc.silent $OUT_TMP/.bashrc.silent
Joel Fernandes301e4552018-04-05 22:46:19 -070029
Joel Fernandes (Google)4b216fd2018-05-29 12:33:27 -070030for f in $EXTRA_FILES; do
31 if [ $f == "none" ]; then continue; fi
32 cp $f $OUT_TMP/
33done
34
Joel Fernandes301e4552018-04-05 22:46:19 -070035# Cleanup
36rm -rf $OUT_TMP/lib/udev/*
37rm -rf $OUT_TMP/var/lib/apt/lists/*
38rm -rf $OUT_TMP/var/cache/apt/archives/*deb
39rm -rf $OUT_TMP/usr/share/locale/*
40rm -rf $OUT_TMP/usr/lib/share/locale/*
41rm -rf $OUT_TMP/usr/share/doc/*
42rm -rf $OUT_TMP/usr/lib/share/doc/*
43rm -rf $OUT_TMP/usr/share/ieee-data/*
44rm -rf $OUT_TMP/usr/lib/share/ieee-data/*
45rm -rf $OUT_TMP/usr/share/man/*
46rm -rf $OUT_TMP/usr/lib/share/man/*
47
Joel Fernandes73a21302018-07-08 14:04:31 -070048# Fix apt-get issue: Android requires _apt user to be in the
49# AID_INET group which is also android specific.
Joel Fernandes5201ffb2018-07-08 15:37:19 -070050grep -ri _apt:x:100:65534 $OUT_TMP/etc/passwd > /dev/null 2>&1
Joel Fernandes73a21302018-07-08 14:04:31 -070051if [ $? -ne 0 ]; then
Joel Fernandes112243b2018-07-08 17:42:48 -070052 c_warning "_apt user cannot be added to AID_INET group"
Joel Fernandes73a21302018-07-08 14:04:31 -070053else
Joel Fernandes5201ffb2018-07-08 15:37:19 -070054 sed -i -e 's/_apt:x:100:65534/_apt:x:100:3003/' $OUT_TMP/etc/passwd
Joel Fernandes73a21302018-07-08 14:04:31 -070055fi
56
Joel Fernandes7a193e22018-07-08 15:18:06 -070057# Add a default DNS server
58echo "nameserver 4.2.2.2" > $OUT_TMP/etc/resolv.conf
59
Joel Fernandes301e4552018-04-05 22:46:19 -070060# Clone BCC if needed
61if [[ ! -z ${INSTALL_BCC+x} ]]; then
62git clone https://github.com/iovisor/bcc.git $TDIR/debian/bcc-master
63cp $spath/bcc/build-bcc.sh $TDIR/debian/bcc-master/; fi
64
Joel Fernandes (Google)9c3ae932018-05-28 14:34:48 -070065# Should be really do this?
66chmod -R 0777 $TDIR/
67
68if [ $SKIP_COMPRESS -eq 1 ]; then exit 0; fi
69
Joel Fernandes112243b2018-07-08 17:42:48 -070070c_info "Compressing new filesystem to prepare to push to Android /data/androdeb/"
Joel Fernandes301e4552018-04-05 22:46:19 -070071tar -zcf $TDIR/deb.tar.gz -C $TDIR debian
72
Joel Fernandes301e4552018-04-05 22:46:19 -070073chmod 0777 $TDIR/deb.tar.gz