Android_Compile_Setting

Set up repo

From Google

1
2
3
4
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

From Tsinghua

1
2
3
4
mkdir ~/bin
PATH=~/bin:$PATH
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
chmod a+x ~/bin/repo

For version 1.25, the SHA-256 checksum for Repo is d06f33115aea44e583c8669375b35aad397176a411de3461897444d247b6c220.

For version 1.26, the SHA-256 checksum for Repo is 0cf5f52bcafb8e1d3ba0271b087312f6117b824af272bedd4ee969d52363a86b.

Config git

1
2
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

Download Source Code

AOSP

Check Build Name: https://source.android.com/setup/start/build-numbers#source-code-tags-and-builds

1
2
3
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r47
repo sync

Kernel

1
2
3
repo init -u https://android.googlesource.com/kernel/manifest -b BRANCH
repo init -u https://aosp.tuna.tsinghua.edu.cn/kernel/goldfish -b android-4.14
repo sync

For older version:

1
2
3
git clone https://android.googlesource.com/kernel/goldfish
git checkout -a
git checkout -b branch_name

AOSP

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r47

repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-9.0.0_r47

Kernel

repo init -u https://aosp.tuna.tsinghua.edu.cn/kernel/manifest -b common-android-mainline

Build

Docker Config

Project Structure

1
2
3
4
5
6
7
├── android
│   ├── aosp
│   ├── bin
│   └── kernel
└── build_aosp
├── Dockerfile
└── sources.list

Dockerfile

1
2
3
4
5
6
7
8
9
10
11
FROM ubuntu:18.04

WORKDIR /root/
ENV PATH ~/bin:$PATH
ENV TERM xterm
ENV DEBIAN_FRONTEND noninteractive

COPY sources.list /etc/apt/sources.list
RUN apt-get update && apt-get install -y --no-install-recommends apt-utils && apt-get install -y ca-certificates
RUN sed -i 's/http:\/\/mirrors.tuna.tsinghua.edu.cn/https:\/\/mirrors.tuna.tsinghua.edu.cn/g' /etc/apt/sources.list
RUN apt-get update && apt-get -y install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

Build

1
2
3
4
5
6
7
8
docker build -t build_aosp ./build_aosp
docker build --no-cache=true build_aosp ./build_aosp
docker run -it -v ~/android:/root build_aosp /bin/bash

source build/envsetup.sh
m help
m