{{indexmenu_n>15}} ====== VIM4 Build Android ====== ===== Preparations ===== * [[http://source.android.com/source/initializing.html|Set up a Build Environment]] * [[products:sbc:vim4:development:android:download-android-source-code|Downloading the Android Source]] * [[products:sbc:vim4:development:android:install-toolchains|Install Toolchains for the Amlogic Platform]] ===== Building ===== Make sure you have done all the ''Preparations'' listed above before getting started. ==== Build U-Boot ==== ```shell $ cd PATH_YOUR_PROJECT $ cd bootloader/uboot $ ./mk kvim4 --avb2 --vab ``` Gernerate images in this step: * ''build/u-boot.bin'': for onboard eMMC storage booting * ''build/u-boot.bin.sd.bin'': for external TF card booting ==== Build Linux Kernel ==== ```shell $ ./mk kvim4 -v 5.4 -jN ``` Replace ''N'' with the actual number of threads on your own computer. ==== Build Android ==== ```shell $ cd PATH_YOUR_PROJECT $ . build/envsetup.sh $ lunch TARGET_LUNCH $ make -jN otapackage ``` Gernerate images in this step: ''out/target/product/TARGET/update.img''. * Unlike VIM3, VIM4 doesn't support compiling Android and Linux Kernel at the same time. * Replace ''N'' with the actual number of threads on your own computer * Replace ''TARGET_LUNCH'' to your lunch select. * For VIM4, it's ''kvim4-userdebug''. ==== Build Script Demo ==== ```sh demo.sh $ cat demo.sh #!/bin/bash #build U-Boot if [ "$1" == 'u' ] || [ "$1" == 'n' ]; then echo "build U-Boot" cd bootloader/uboot ./mk kvim4 --avb2 --vab cd - fi #build Kernel if [ "$1" == 'k' ] || [ "$1" == 'n' ]; then echo "build Kernel" if [ "$2" == 'n' ] || [ "$1" == 'n' ]; then . build/envsetup.sh lunch kvim4-userdebug make distclean fi ./mk kvim4 -v 5.4 -j100 fi #build Android if [ "$1" == 'a' ] || [ "$1" == 'n' ]; then echo "build Android" if [ "$2" == 'n' ] || [ "$1" == 'n' ]; then . build/envsetup.sh lunch kvim4-userdebug make clean fi . build/envsetup.sh lunch kvim4-userdebug make installclean #make -j80 otapackage make -j80 fi ``` **Build U-Boot:** ```shell $ ./demo.sh u ``` **Build Kernel:** ```shell $ ./demo.sh k ``` **Build Android:** ```shell $ ./demo.sh a ``` **Build all:** ```shell $ ./demo.sh n ```