This Source Code is Modified from the following Site
Minimal build environment for AOSP with handy automation wrapper scripts.
Developers can use the Docker image to build directly while running the distribution of choice, without having to worry about breaking the delicate AOSP build due to package updates as is sometimes common on bleeding edge rolling distributions like Arch Linux.
Production build servers and integration test servers should also use the same Docker image and environment. This eliminates most surprise breakages by by empowering developers and production builds to use the exact same environment. The devs will catch the issues with build environment first.
This works well on Linux. Running this via boot2docker (and friends) will
result in a very painful performacne hit due to VirtualBox's vboxsf shared
folder service which works terrible for very large file shares like AOSP.
It might work, but consider yourself warned. If you're aware of another way to
get around this, send a pull request!
For the terribly impatient.
Make a directory to work and go there.
Export the current directory as the persistent file store for the aosp
wrapper.
Run a self contained build script, which does:
Attempts to fetch the aosp wrapper if not found locally.
Runs the aosp wrapper with an extra argument for the docker binary and
hints to the same script that when run later it's running in the docker
container.
The aosp wrapper then does it's magic which consists of fetching the docker image if not found and forms all the necessary docker run arguments seamlessly.
The docker container runs the other half the build script which initializes the repo, fetches all source code, and builds.
In parallel you are expected to be drinking because I save you some time.
mkdir aosp ; cd aosp
export AOSP_VOL=$PWD
curl -O https://raw.githubusercontent.com/timleunghk/aosp-docker/master/build-pixelexperience-pie.sh
bash ./build-pixelexperience-pie.sh
OR
mkdir aosp ; cd aosp
export AOSP_VOL=$PWD
curl -O https://raw.githubusercontent.com/timleunghk/aosp-docker/master/build-timos.sh
bash ./build-timos.sh
From creating docker image to building a OTA package of image file for your mobile phone, it takes about 2 hours and 35 minutes to download and build on i7 with 100Mb/s network connection. The deliverable is a zip file. It can be found in the following directory
$HOME/aosp/aosp/out/target/product/bullhead/
And the naming format of the deliverables should be like this
PixelExperience_Plus_bullhead-10.0-yymmdd-hhmm-UNOFFICIAL.zip
Alterbatively, if you select TimOS to build, the deliverables should be like this
TimOS_bullhead-10.0-yymmdd-hhmm-UNOFFICIAL.zip
You can copy this file to your Nexus5X mobile phone. To install this, please ensure your mobile phone is unlocked and teamwin is installed in bootloader section of your mobile phone. For details of unlocking phone and installing teamwin, please search relavent articles in xdaDeveloper.
Type this command prompt
docker run --rm -it -v ~/aosp-temp/aosp:/aosp timleung/aosp:10.0-ten
The Dockerfile contains the minimal packages necessary to build Android based on the main Ubuntu base image.
The aosp wrapper is a simple wrapper to simplify invocation of the Docker
image. The wrapper ensures that a volume mount is accessible and has valid
permissions for the aosp user in the Docker image (this unfortunately
requires sudo). It also forwards an ssh-agent in to the Docker container
so that private git repositories can be accessed if needed.
The intention is to use aosp to prefix all commands one would run in the
Docker container. For example to run repo sync in the Docker container:
aosp repo sync -j4
The aosp wrapper doesn't work well with setting up environments, but with
some bash magic, this can be side stepped with short little scripts. See
build-pixelexperience-pie.sh for an example of a complete fetch and build of AOSP.
A Docker Compose file is provided in the root of this repository, you can tweak it as need be:
version: "2"
services:
aosp:
image: timleung/aosp:latest
volumes:
- /tmp/ccache:/ccache
- ~/aosp:/aosp
Example run: docker-compose run --rm aosp repo sync -j4 -- your android build directory will be in ~/aosp.
There are some known issues with using Docker Toolbox on macOS and current virtualization technologies resulting in unusual user ID assignments and very poor performing virtualization file sharing implementations with things like VirtualBox. It's recommended to run this image completely in a virtual machine with enough space to fit the entire build (80GB+) as opposed to mapping the build to the local macOS file system via VirtualBox or similar.
Content type
Image
Digest
Size
333 MB
Last updated
over 5 years ago
docker pull dopaemon/aosp