blob: b33b71e62c4fb89218f10855b1e83b65f1ed67b4 [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
Joel Fernandesfdc52002018-07-08 18:49:20 -070014SKIP_DEVICE=$8 # Skip any device-specific stages
Joel Fernandes6975db22018-07-11 20:53:16 -070015VARIANT="--variant=minbase"
Joel Fernandes301e4552018-04-05 22:46:19 -070016
Joel Fernandes6975db22018-07-11 20:53:16 -070017time qemu-debootstrap --arch $ARCH --include=$PACKAGES $VARIANT \
Joel Fernandes301e4552018-04-05 22:46:19 -070018 $DISTRO $OUT_TMP http://deb.debian.org/debian/
19
20# Some reason debootstrap leaves these mounted
21umount $OUT_TMP/proc/sys/fs/binfmt_misc || true
22umount $OUT_TMP/proc || true
23
24# Make bash the default shell
25chroot $OUT_TMP rm /bin/sh || true
26chroot $OUT_TMP ln -s /bin/bash /bin/sh || true
27cp $spath/addons/bashrc $OUT_TMP/.bashrc
Joel Fernandesfa4b8cd2018-07-02 20:08:07 -070028cp $spath/addons/bashrc.common $OUT_TMP/.bashrc.common
29cp $spath/addons/bashrc.silent $OUT_TMP/.bashrc.silent
Joel Fernandes087ff8b2018-07-08 22:45:43 -070030cp $spath/addons/get_kvers.sh $OUT_TMP/
Joel Fernandes301e4552018-04-05 22:46:19 -070031
Joel Fernandes (Google)4b216fd2018-05-29 12:33:27 -070032for f in $EXTRA_FILES; do
33 if [ $f == "none" ]; then continue; fi
34 cp $f $OUT_TMP/
35done
36
Joel Fernandes301e4552018-04-05 22:46:19 -070037# Cleanup
38rm -rf $OUT_TMP/lib/udev/*
39rm -rf $OUT_TMP/var/lib/apt/lists/*
40rm -rf $OUT_TMP/var/cache/apt/archives/*deb
41rm -rf $OUT_TMP/usr/share/locale/*
42rm -rf $OUT_TMP/usr/lib/share/locale/*
43rm -rf $OUT_TMP/usr/share/doc/*
44rm -rf $OUT_TMP/usr/lib/share/doc/*
45rm -rf $OUT_TMP/usr/share/ieee-data/*
46rm -rf $OUT_TMP/usr/lib/share/ieee-data/*
47rm -rf $OUT_TMP/usr/share/man/*
48rm -rf $OUT_TMP/usr/lib/share/man/*
49
Joel Fernandes73a21302018-07-08 14:04:31 -070050# Fix apt-get issue: Android requires _apt user to be in the
51# AID_INET group which is also android specific.
Joel Fernandes5201ffb2018-07-08 15:37:19 -070052grep -ri _apt:x:100:65534 $OUT_TMP/etc/passwd > /dev/null 2>&1
Joel Fernandes73a21302018-07-08 14:04:31 -070053if [ $? -ne 0 ]; then
Joel Fernandes112243b2018-07-08 17:42:48 -070054 c_warning "_apt user cannot be added to AID_INET group"
Joel Fernandes73a21302018-07-08 14:04:31 -070055else
Joel Fernandes5201ffb2018-07-08 15:37:19 -070056 sed -i -e 's/_apt:x:100:65534/_apt:x:100:3003/' $OUT_TMP/etc/passwd
Joel Fernandes73a21302018-07-08 14:04:31 -070057fi
58
Joel Fernandes7a193e22018-07-08 15:18:06 -070059# Add a default DNS server
60echo "nameserver 4.2.2.2" > $OUT_TMP/etc/resolv.conf
61
Joel Fernandes301e4552018-04-05 22:46:19 -070062# Clone BCC if needed
Joel Fernandesffcbfe42018-07-08 19:08:02 -070063if [ $INSTALL_BCC -eq 1 ]; then
64 git clone https://github.com/iovisor/bcc.git $TDIR/debian/bcc-master
65 cp $spath/bcc/build-bcc.sh $TDIR/debian/bcc-master/;
66fi
Joel Fernandes301e4552018-04-05 22:46:19 -070067
Joel Fernandes (Google)9c3ae932018-05-28 14:34:48 -070068# Should be really do this?
69chmod -R 0777 $TDIR/
70
Joel Fernandesffcbfe42018-07-08 19:08:02 -070071[ $SKIP_DEVICE -eq 0 ] || exit 0
Joel Fernandes (Google)9c3ae932018-05-28 14:34:48 -070072
Joel Fernandes112243b2018-07-08 17:42:48 -070073c_info "Compressing new filesystem to prepare to push to Android /data/androdeb/"
Joel Fernandes301e4552018-04-05 22:46:19 -070074tar -zcf $TDIR/deb.tar.gz -C $TDIR debian
75
Joel Fernandes301e4552018-04-05 22:46:19 -070076chmod 0777 $TDIR/deb.tar.gz