Some of Chinese customer couldn’t normally download android source code from google site, here give a way to download android source from Mirror site of University of Science and Technology of China.
Preparations
-
Installing Ubuntu16.04.2 LTS
Customer can download ubuntu-16.04.2-desktop-amd64.iso from
https://www.ubuntu.com/download/desktop
Then install it to VMware workstation player v12 or PC, after finishing installation, use “Software Update” to update system.
In order to compile android8.0.0-1.0.0 BSP, necessary packages should also be installed on Ubuntu 16.04.
$
sudo apt-get install gnupg
$
sudo apt-get install flex
$
sudo apt-get install bison
$
sudo apt-get install gperf
$
sudo apt-get install build-essential
$
sudo apt-get install zip
$
sudo apt-get install zlib1g-dev
$
sudo apt-get install libc6-dev
$
sudo apt-get install lib32ncurses5-dev
$
sudo apt-get install x11proto-core-dev
$
sudo apt-get install libx11-dev
$
sudo apt-get install lib32z1-dev
$
sudo apt-get install libgl1-mesa-dev
$
sudo apt-get install tofrodos
$
sudo apt-get install python-markdown
$
sudo apt-get install libxml2-utils
$
sudo apt-get install xsltproc
$
sudo apt-get install
uuid-dev:i386 liblzo2-dev:i386
$
sudo apt-get install gcc-multilib g++-multilib
$
sudo apt-get install subversion
$
sudo apt-get install openssh-server openssh-client
$ sudo apt-get install uuid uuid-dev
$ sudo apt-get install zlib1g-dev liblz-dev
$ sudo apt-get install liblzo2-2 liblzo2-dev
$ sudo apt-get install lzop
$ sudo apt-get install git-core curl
$ sudo apt-get install u-boot-tools
$ sudo apt-get install mtd-utils
$ sudo apt-get install android-tools-fsutils
$ sudo apt-get install openjdk-8-jdk
More detail, see Android_User’s_Guide.pdf ( android 8.0.0-1.0.0 BSP documents)
-
Downloading and unpacking
Android release package
https://www.nxp.com/products/processors-and-microcontrollers/applications-processors/i.mx-applicatio...
--
IMX_O8.0.0_1.0.0_ANDROID_SOURCE
File name is
mx-o8.0.0_1.0.0_ga.tar.gz
# cd ~
# tar xzvf mx-o8.0.0_1.0.0_ga.tar
Downloading Android 8.0.0-1.0.0 source code
-
Getting repo
# cd ~
# mkdir bin
# cd bin
#
curl
https://storage-googleapis.proxy.ustclug.org/git-repo-downloads/repo
> ~/bin/repo
# chmod a+x ~/bin/repo
# export PATH=${PATH}:~/bin
-
Modifying repo File
Open ~/bin/repo file with 'gedit' and Change google address
From
REPO_URL = '
https://gerrit.googlesource.com/git-repo
'
To
REPO_URL =
'
git-repo - Git at Google
'
3
、
Setting email address
# git config --global user.email "
[email protected]
"
# git config --global user.name "xxxx"
[ Email & Name should be yours]
4
、
Modifying android setup script and Running it
Open ~/imx-o8.0.0_1.0.0_ga/imx_android_setup.sh and add a line like below:
......
if [ "$rc" != 0 ]; then
echo "---------------------------------------------------"
echo "-----Repo Init failure"
echo "---------------------------------------------------"
return 1
fi
find -name 'aosp-O8.0.0-1.0.0.xml'| xargs perl -pi -e 's|
https://android.googlesource.com/|git://mirrors.ustc.edu.cn/aosp/|g
'
fi
# Don't Delete .repo directory and hidden files
#rm -rf $android_builddir/.??*
Then save it and exit.
# cd ~/
# source ~/imx-o8.0.0_1.0.0_ga/imx_android_setup.sh
Then android_build directory is created at ~/
# export MY_ANDROID=~/android_build
[Note]
imx_android_setup.sh will be in charge of downloading all android source code.
5.Begin to compile android 8.0.0 BSP
$ export ARCH=arm
$ export CROSS_COMPILE=${MY_ANDROID}/prebuilts/gcc/linux-x86/arm/arm-linuxandroideabi-4.9/bin/arm-linux-androideabi-
$ cd ~/android_build
$ source build/envsetup.sh
$ lunch sabreauto_6q-userdebug
$ make –j4
Errors:
......
“Try increasing heap size with java option '-Xmx<size>'.”
......
Logs for compiling
weidong@ubuntu:~/android_build$ lunch sabreauto_6q-userdebug
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=8.0.0
TARGET_PRODUCT=sabreauto_6q
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_PLATFORM_VERSION=OPD1
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-116-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=1.0.0-rfp-rc4
OUT_DIR=out
AUX_OS_VARIANT_LIST=
============================================
weidong@ubuntu:~/android_build$ make -j4
============================================
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=8.0.0
TARGET_PRODUCT=sabreauto_6q
TARGET_BUILD_VARIANT=userdebug
TARGET_BUILD_TYPE=release
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a9
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-116-generic-x86_64-with-Ubuntu-16.04-xenial
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=1.0.0-rfp-rc4
OUT_DIR=out
============================================
[38/38] bootstrap out/soong/.minibootstrap/build.ninja.in
[1/2] out/soong/.bootstrap/bin/minibp out/soong/.minibootstrap/build.ninja.in
[4/4] out/soong/.bootstrap/bin/minibp out/soong/.bootstrap/build.ninja
[791/792] glob vendor/*/*/Android.bp
[47/47] out/soong/.bootstrap/bin/soong_build out/soong/build.ninja
out/build-sabreauto_6q.ninja is missing, regenerating...
[9/1005] including ./cts/Android.mk ...
cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/Android.mk:23: warning: FindEmulator: find: `cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider/src': No such file or directory
cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/Android.mk:23: warning: FindEmulator: find: `cts/hostsidetests/os/test-apps/StaticSharedNativeLibProvider1/src': No such file or directory
[690/1005] including ./system/sepolicy/Android.mk ...
./system/sepolicy/Android.mk:107: warning: BOARD_SEPOLICY_VERS not specified, assuming current platform version
[1005/1005] including ./vendor/nxp/linux-firmware-imx/firmware/Android.mk ...
No private recovery resources for TARGET_DEVICE sabreauto_6q
platform_testing/build/tasks/tests/instrumentation_metric_test_list.mk: warning: continuous_instrumentation_metric_tests: Unknown installed file for module perf-setup.sh
platform_testing/build/tasks/tests/instrumentation_test_list.mk: warning: continuous_instrumentation_tests: Unknown installed file for module RecyclerViewTests
platform_testing/build/tasks/tests/instrumentation_test_list.mk: warning: continuous_instrumentation_tests: Unknown installed file for module SettingsFunctionalTests
platform_testing/build/tasks/tests/instrumentation_test_list.mk: warning: continuous_instrumentation_tests: Unknown installed file for module LauncherFunctionalTests
platform_testing/build/tasks/tests/instrumentation_test_list.mk: warning: continuous_instrumentation_tests: Unknown installed file for module EmergencyInfoTests
platform_testing/build/tasks/tests/native_metric_test_list.mk: warning: continuous_native_metric_tests: Unknown installed file for module perf-setup.sh
test/vts/tools/build/tasks/vts_package.mk:222: warning: FindEmulator: cd: vendor/google_vts/testcases: No such file or directory
test/vts/tools/build/tasks/vts_package.mk:222: warning: FindEmulator: cd: vendor/google_vts/testcases: No such file or directory
test/vts/tools/build/tasks/vts_package.mk:222: warning: FindEmulator: cd: vendor/google_vts/testcases: No such file or directory
./test/vts/utils/python/archive/Android.mk:28: warning: overriding commands for target `default'
./test/vts/runners/host/tcp_server/Android.mk:19: warning: ignoring old commands for target `default'
build/core/Makefile:34: warning: overriding commands for target `out/target/product/sabreauto_6q/root/init.rc'
build/core/base_rules.mk:378: warning: ignoring old commands for target `out/target/product/sabreauto_6q/root/init.rc'
......
......
CC lib/vsprintf.o
CC lib/panic.o
CC lib/strto.o
CC lib/strmhz.o
LD lib/built-in.o
CC examples/standalone/hello_world.o
CC examples/standalone/stubs.o
LD examples/standalone/libstubs.o
LD examples/standalone/hello_world
OBJCOPY examples/standalone/hello_world.bin
OBJCOPY examples/standalone/hello_world.srec
LD u-boot
OBJCOPY u-boot-nodtb.bin
OBJCOPY u-boot.srec
SHIPPED dts/dt.dtb
SYM u-boot.sym
COPY u-boot.dtb
CAT u-boot-dtb.bin
COPY u-boot.bin
CFGS board/freescale/mx6qsabreauto/mx6qp.cfg.cfgtmp
MKIMAGE u-boot-dtb.imx
CFGCHK u-boot.cfg
make[1]: Leaving directory '/home/weidong/android_build/out/target/product/sabreauto_6q/obj/BOOTLOADER_OBJ'
make: Leaving directory '/home/weidong/android_build/vendor/nxp-opensource/uboot-imx'
/bin/bash: line 0: [: =: unary operator expected
[ 3% 2129/63758] Check module type: out/target/common/obj/APPS/Browser2_intermediates/link_type
packages/apps/Browser2/Android.mk: warning: Browser2 (java:sdk) should not link to legacy-android-test (java:platform)
[ 3% 2171/63758] Ensuring Jack server is installed and started
Jack server already installed in "/home/weidong/.jack-server"
Launching Jack server java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=/tmp -Dfile.encoding=UTF-8 -XX:+TieredCompilation -cp /home/weidong/.jack-server/launcher.jar com.android.jack.launcher.ServerLauncher
Server updated, waiting for restart
......
......
D [M] drivers/rpmsg/imx_rpmsg_tty.ko
LD [M] drivers/video/backlight/l4f00242t03.ko
CC arch/arm/boot/compressed/misc.o
LD [M] drivers/video/backlight/platform_lcd.ko
LD [M] drivers/video/backlight/lcd.ko
CC arch/arm/boot/compressed/decompress.o
CC arch/arm/boot/compressed/string.o
SHIPPED arch/arm/boot/compressed/hyp-stub.S
SHIPPED arch/arm/boot/compressed/lib1funcs.S
SHIPPED arch/arm/boot/compressed/ashldi3.S
SHIPPED arch/arm/boot/compressed/bswapsdi2.S
AS arch/arm/boot/compressed/hyp-stub.o
AS arch/arm/boot/compressed/lib1funcs.o
AS arch/arm/boot/compressed/ashldi3.o
AS arch/arm/boot/compressed/bswapsdi2.o
AS arch/arm/boot/compressed/piggy.o
LD arch/arm/boot/compressed/vmlinux
OBJCOPY arch/arm/boot/zImage
Kernel: arch/arm/boot/zImage is ready
make[1]: Leaving directory '/home/weidong/android_build/out/target/product/sabreauto_6q/obj/KERNEL_OBJ'
make: Leaving directory '/home/weidong/android_build/vendor/nxp-opensource/kernel_imx'
make: Entering directory '/home/weidong/android_build/vendor/nxp-opensource/kernel_imx'
make[1]: Entering directory '/home/weidong/android_build/out/target/product/sabreauto_6q/obj/KERNEL_OBJ'
CHK include/config/kernel.release
GEN ./Makefile
CHK include/generated/uapi/linux/version.h
Using /home/weidong/android_build/vendor/nxp-opensource/kernel_imx as source for kernel
CHK include/generated/utsrelease.h
CHK include/generated/timeconst.h
CHK include/generated/bounds.h
CHK include/generated/asm-offsets.h
CALL /home/weidong/android_build/vendor/nxp-opensource/kernel_imx/scripts/checksyscalls.sh
make[1]: Leaving directory '/home/weidong/android_build/out/target/product/sabreauto_6q/obj/KERNEL_OBJ'
make: Leaving directory '/home/weidong/android_build/vendor/nxp-opensource/kernel_imx'
......
......
[ 83% 53244/63758] Building with Jack: out/target/co...ARIES/framework_intermediates/with-local/classes.dex
FAILED: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex
/bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp
Out of memory error (version 1.3-rc7 'Douarn' (445000 d7be3910514558d6715ce455ce0861ae2f56925a by
[email protected]
)).
GC overhead limit exceeded.
Try increasing heap size with java option '-Xmx<size>'.
Warning: This may have produced partial or corrupted output.
[ 83% 53247/63758] //external/llvm/lib/CodeGen/SelectionDAG:libLLVMSelectionDAG clang++ DAGCombiner.cpp
ninja: build stopped: subcommand failed.
19:17:25 ninja failed with: exit status 1
build/core/main.mk:21: recipe for target 'run_soong_ui' failed
make: *** [run_soong_ui] Error 1
*******************************************************
solve the issue: Try increasing heap size with java option '-Xmx<size>'.
-- run commands below on command line
#export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g"
#./prebuilts/sdk/tools/jack-admin kill-server
#./prebuilts/sdk/tools/jack-admin start-server
*******************************************************
#make -j4 //continue compiling
......
......
[ 50% 1/2] glob vendor/*/*/Android.bp
[ 0% 1/10515] Ensuring Jack server is installed and started
Jack server already installed in "/home/weidong/.jack-server"
Server is already running
......
......
Creating filesystem with parameters:
Size: 1585446912
Block size: 4096
Blocks per group: 32768
Inodes per group: 8064
Inode size: 256
Journal blocks: 6048
Label: system
Blocks: 387072
Block groups: 12
Reserved block group size: 95
Created filesystem with 2216/96768 inodes and 171147/387072 blocks
Running: build_verity_tree -A aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7 out/target/product/sabreauto_6q/obj/PACKAGING/systemimage_intermediates/system.img /tmp/tmpPnRk1H_verity_images/verity.img
f26a84a2c66d866f5322986e7a093812329d87579e5859aa32a2cf4c21f69661 aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7
Running: system/extras/verity/build_verity_metadata.py build 1585446912 /tmp/tmpPnRk1H_verity_images/verity_metadata.img f26a84a2c66d866f5322986e7a093812329d87579e5859aa32a2cf4c21f69661 aee087a5be3b982978c923f566a94613496b417f2af592639bc80d141e34dfe7 /dev/block/by-name/system verity_signer build/target/product/security/verity.pk8
['verity_signer', '/tmp/tmpvXftO2.table', 'build/target/product/security/verity.pk8', '/tmp/tmpbfl4fq.sig']
appending /tmp/tmpPnRk1H_verity_images/verity_metadata.img to /tmp/tmpPnRk1H_verity_images/verity.img
Running: fec -e -p 0 out/target/product/sabreauto_6q/obj/PACKAGING/systemimage_intermediates/system.img /tmp/tmpPnRk1H_verity_images/verity.img /tmp/tmpPnRk1H_verity_images/verity_fec.img
encoding RS(255, 253) to '/tmp/tmpPnRk1H_verity_images/verity_fec.img' for input files:
1: 'out/target/product/sabreauto_6q/obj/PACKAGING/systemimage_intermediates/system.img'
2: '/tmp/tmpPnRk1H_verity_images/verity.img'
appending /tmp/tmpPnRk1H_verity_images/verity_fec.img to /tmp/tmpPnRk1H_verity_images/verity.img
Running: append2simg out/target/product/sabreauto_6q/obj/PACKAGING/systemimage_intermediates/system.img /tmp/tmpPnRk1H_verity_images/verity.img
[100% 10515/10515] Install system fs image: out/target/product/sabreauto_6q/system.img
out/target/product/sabreauto_6q/system.img+out/target/product/sabreauto_6q/obj/PACKAGING/recovery_patch_intermediates/recovery_from_boot.p maxsize=1644331392 blocksize=4224 total=704129669 reserve=16612992
#### make completed successfully (01:21:12 (hh:mm:ss)) ####
NXP TIC team
Weidong sun
2018-06-01