Build Android 11 for SECO boards

Building a custom Android 11 for SECO board is a simple operation.

In the following instructions, values of “C61” and C43” are valid for <BOARD_CODE>.

Requirements:

  • a powerful PC HOST with Linux OS system (Ubuntu, Debian, ARCH Linux are valid options);

  • a docker environment installed and running;

  • a configured git and repo environment;

  • 250 GB of free space on storage drive;

If you are in a hurry:

  • For i.MX platform download this preconfigured script: android_build.sh and run it on your Linux PC HOST:

    • ./android_build.sh <BOARD_CODE> # for example: ./android_build.sh C43

  • You will find the results of the build process in the folder ANDROID_11/Distros/:

    • ls -lh ANDROID_11/Distros/

 

Detailed procedure:

  • Configure git:

    • git config --global user.name "Your Name"

    • git config --global user.email "your.name@example.com"

 

  • Init and download Android 11 repository:

    • mkdir ANDROID_11

    • cd ANDROID_11

    • repo init -u https://git.seco.com/pub/i.mx/android/android_11.0.0/android_11.0.0_1.0.0.git

    • repo sync -j 20

 

  • Pull the latest SECO docker for Android building image:

    • sudo docker pull secodocker/android-builder:latest

  • Run SECO docker for Android build:

    • docker run --rm -it \ --privileged \ --volume="/etc/passwd:/etc/passwd:ro" \ --volume="/etc/group:/etc/group:ro" \ --volume="/etc/shadow:/etc/shadow:ro" \ --volume $PWD:/workdir \ -v ~/.bash_history:${HOME}/.bash_history:rw \ -v ~/.vimrc:${HOME}/.vimrc:rw \ -v ~/.vim:${HOME}/.vim:rw \ -v ~/.cache:${HOME}/.cache:rw \ -e BOARDCODE=${boardcode} \ --workdir="/workdir" \ --user $(id -u "$(stat -c "%U" Android.bp)"):$(id -g) \ secodocker/android-builder:latest

 

  • Set up the Android environment and run the build commands:

    • source setup<BOARD_CODE> # for example: source setupC61

    • seco-imx-make.sh -j20 bootloader

    • seco-imx-make.sh -j20 bootimage

    • make -j20

 

  • Wait until the end of the compilation process (build process can last 1 or more hours according to the speed of your system)

  • You can produce a tar.gz archive to be used for installation by running the following script:

    • prepare_distro.sh [<IMAGE_NAME>] # Where [<IMAGE_NAME>] is an optional text string for naming the image file (default to “Android_11_<BOARD_CODE>_Distro_<DATE>.tar.gz”)

 

Build otapackage:

To build an OTA package to upgrade an existing Android 11 installation you just need to use the “otapackage” target in the previous “make -j20” command.

So the complete procedure is:

  • make otapackage procedure:

    • source setup<BOARD_CODE> # for example: source setupC61

    • seco-imx-make.sh -j20 bootloader

    • seco-imx-make.sh -j20 bootimage

    • make -j20 otapackage

  • Results of this build can be found in the following patrh:

    • out/target/product/<extended_board_code>/<extended_board_code>-ota-eng.<username>.zip #[for example: “out/target/product/c43_8q/c43_8q-ota-eng.developer.zip” ]

 

The preconfigured android_build.sh script contains all the commands described above and can be used to speedup the build process, or can be modified to be used for specific needs.

Ready for installation:

Refer to https://secogroup.atlassian.net/wiki/spaces/SECOTech/blog/2021/11/18/1403912934 for the installation procedure.