{{indexmenu_n>15}}
====== Edge2 Build Android ======
===== Introduction =====
This document mainly introduces how to compile the Android source code. You will learn how to compile different versions of Android source code.
===== Preparation =====
* [[http://source.android.com/source/initializing.html]]
* [[.download-android-source-code]]
* [[.install-toolchains]]
===== Building =====
Before you start to build, make sure you have done all the Preperations listed above.
Build ALL:
```shell
$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch kedge2-userdebug
$ ./build.sh -UCKAou
```
You can also distribute compilations:
Build U-Boot:
```shell
$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch kedge2-userdebug
$ ./build.sh -Uu
```
Build kernel:
```shell
$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch kedge2-userdebug
$ ./build.sh -CKu
```
Build Android:
```shell
$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch kedge2-userdebug
$ ./build.sh -Au
```
Build OTA:
```shell
$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch kedge2-userdebug
$ ./build.sh -ou
```
Modify the file build.sh ''BUILD_JOBS=16'' as the number you want when you run ''BUILD_JOBS=n''.
After executing ''./build.sh -u'', generate a complete firmware package in the ''rockdev/Image-xxx/directory''(xxx is the product name of the specific lunch).
```
rockdev/Image-xxx/
├── boot-debug.img
├── boot.img
├── config.cfg
├── dtbo.img
├── MiniLoaderAll.bin
├── misc.img
├── parameter.txt
├── pcba_small_misc.img
├── pcba_whole_misc.img
├── recovery.img
├── resource.img
├── super.img
├── uboot.img
├── update.img
└── vbmeta.img
```
Packing update.img:
```shell
$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch kedge2-userdebug
$ ./build.sh -u
```
After compiling, you need to reload ''update.img'' when flashing.
===== See Also =====
* [[/products/sbc/edge2/install-os/install-os-into-emmc-via-usb-tool|]]
* [[/products/sbc/edge2/install-os/install-os-into-external-storage|]]