{{indexmenu_n>15}} ====== VIM1S Build Android ====== ===== Preparations ===== * [[http://source.android.com/source/initializing.html|Setup the Build Environment]] * [[products:sbc:vim1s:development:android:download-android-source-code]] * [[products:sbc:vim1s:development:android:install-toolchains]] ===== 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 kvim1s ``` 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 kvim1s -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''. * When compiling Android for VIM3, both Android and the kernel are compiled together. For VIM1S, only Android is compiled, the kernel has to be compiled separately. * Replace ''N'' with the actual number of threads on your own computer * Replace ''TARGET_LUNCH'' to your lunch select. * For VIM1S, it's ''kvim1s-userdebug''. ==== Build Script Demo ==== ```sh demo.sh #!/bin/bash #build U-Boot if [ "$1" == 'u' ] || [ "$1" == 'n' ]; then echo "build U-Boot" cd bootloader/uboot ./mk kvim1s cd - fi #build Kernel if [ "$1" == 'k' ] || [ "$1" == 'n' ]; then echo "build Kernel" if [ "$2" == 'n' ] || [ "$1" == 'n' ]; then . build/envsetup.sh lunch kvim1s-userdebug make distclean fi ./mk kvim1s -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 kvim1s-userdebug make clean fi . build/envsetup.sh lunch kvim1s-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 ```