FROM ubuntu:22.04

ARG uid
ARG gid
ARG name
ENV DEBIAN_FRONTEND=noninteractive
RUN sed -i s@/archive.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list
RUN sed -i s@/security.ubuntu.com/@/mirrors.tuna.tsinghua.edu.cn/@g /etc/apt/sources.list
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils
# 根據官網提供的需要安裝的編譯庫
RUN apt-get update \
    && apt-get install -y -qq --no-install-recommends zip unzip flex bc rsync bison gperf gnupg m4 curl genisoimage xsltproc tofrodos \
       build-essential gcc-multilib g++-multilib libc6-dev libc6-dev-i386 lib32z-dev lib32ncurses5-dev kmod dpkg-dev x11proto-core-dev zlib1g-dev \
       libsdl1.2-dev lib32z1-dev libx11-dev libgl1-mesa-dev libxml2-utils libssl-dev libxml-simple-perl cpio debootstrap nodejs libfdt-dev xmlstarlet \
	   scons
# 一定要設定USER這個變數，不然AOSP的soong編譯報錯
RUN apt-get update && apt-get install -y -qq --no-install-recommends vim git openjdk-8-jdk pip openssh-server \
    sudo device-tree-compiler liblz4-tool libncurses5 uuid-dev wget libffi-dev libyaml-dev swig cargo tzdata bash-completion \
    && echo "# ++++++++++++++++++++++++++++++++++++++++" >> /etc/profile \
    && echo "export USER=root" >> /etc/profile \
    && echo "#!/bin/bash" >> /bin/android \
    && echo "su -l $name -s /bin/bash" >> /bin/android \
    && chmod +x /bin/android
# poky
RUN apt-get update && apt-get install -y -qq --no-install-recommends build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3-jinja2 python3-pexpect python3-pip python3-subunit python3-dev socat texinfo unzip wget xz-utils zstd language-pack-en-base iproute2 uml-utilities libsqlite3-dev python2 binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu g++-aarch64-linux-gnu qemu-user qemu-user-static binfmt-support fakeroot fakechroot libcurl4-openssl-dev

RUN rm -rf /lib/ld-linux-aarch64.so.1
RUN ln -sf /usr/aarch64-linux-gnu/lib/ld-linux-aarch64.so.1 /lib/ld-linux-aarch64.so.1
RUN wget http://cz.archive.ubuntu.com/ubuntu/pool/universe/f/fakechroot/libfakechroot_2.20.1%2Bds-15_amd64.deb && dpkg -i ./libfakechroot_2.20.1+ds-15_amd64.deb
RUN wget http://cz.archive.ubuntu.com/ubuntu/pool/universe/f/fakechroot/fakechroot_2.20.1%2Bds-15_all.deb && dpkg -i ./fakechroot_2.20.1+ds-15_all.deb

RUN pip install protobuf==3.20.*
RUN pip install markdown
RUN pip install requests
RUN pip install dtschema==2021.10
RUN pip install jsonschema==4.0.0
RUN pip install ruamel.yaml==0.17.17
RUN pip install jinja2
RUN pip install click
RUN pip install lark
RUN python3 -m pip install validators

RUN groupadd -g $gid $name \
 && useradd -m -u $uid -g $gid $name \
 && echo "root:123457" | sudo chpasswd \
 && echo "$name:123457" | sudo chpasswd \
 && usermod -aG sudo $name \
 && echo $name >/root/name \
 && echo "export USER="$name >>/home/$name/.bashrc \
 && echo "if [ $(pwd) != /home/build ]; then cd /home/build; fi" >> /home/$name/.bashrc \
 && ln -s /usr/bin/python3 /usr/bin/python \
 && ln -sf /bin/bash /bin/sh \
 && mkdir -p /home/$name/.bin \
 && cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime \
 && rm /etc/apt/apt.conf.d/docker-clean \
 && echo "fs.inotify.max_user_watches=99999999" >> /etc/sysctl.conf \
 && echo 'PATH="${HOME}/.bin:${PATH}"' >> /home/$name/.bashrc \
 && echo 'export PS1="\u@\h:\w\$ "' >> /home/$name/.bashrc

RUN echo 'set encoding=utf-8' >> /root/.vimrc && \
    echo 'set fileencodings=utf-8,gbk' >> /root/.vimrc && \
    echo 'set termencoding=utf-8' >> /root/.vimrc

RUN echo 'set encoding=utf-8' >> /home/$name/.vimrc && \
    echo 'set fileencodings=utf-8,gbk' >> /home/$name/.vimrc && \
    echo 'set termencoding=utf-8' >> /home/$name/.vimrc

COPY repo /home/iro/.bin
COPY repo /home/iot/.bin

ENV USER=$name
WORKDIR /home/build
# 构建镜像（镜像已经存在则无需再构建）
# docker build --build-arg uid=$(id -u) --build-arg gid=$(id -g) --build-arg name=$(id -un) -t ubuntu/androidbuilder:6490 .
# 编译源码 (请在源码上同级目录执行下面命令进入容器)
# docker run --privileged -it --rm --hostname android -v $(pwd):/home/$(whoami) ubuntu/androidbuilder:6490 android
