Building Android Source Code

Preperations

Building

Note: Before you start to build, make sure you have done all the Preperations listed above.

android 7.1:

Build U-boot:

$ cd PATH_YOUR_PROJECT
$ cd uboot
$ make kedge_defconfig
$ make ARCHV=aarch64

Build kernel:

$ cd PATH_YOUR_PROJECT
$ cd kernel
$ make ARCH=arm64 kedge_defconfig -jN
$ make ARCH=arm64 rk3399-khadas-edge-android.img -jN

Build android:

$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch rk3399_all-userdebug
$ make installclean
$ make -jN
$ ./mkimage.sh

Note: Replace ‘N’ as the number you want when you run ‘make -jN

After executing./mkimage.sh, generate a complete firmware package in the rockdev/Image-xxx/directory (xxx is the product name of the specific lunch)

rockdev/Image-xxx/
├── boot.img
├── kernel.img
├── misc.img
├── parameter.txt
├── recovery.img
├── resource.img
├── RK3399MiniLoaderAll.bin
├── system.img
├── trust.img
└── uboot.img

Packing update.img:

$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch rk3399_all-userdebug
$ ./pack_image.sh

android 9.0:

Build U-boot:

$ cd PATH_YOUR_PROJECT
$ cd u-boot
$ make mrproper
$ ./make.sh kedge

Build kernel:

$ cd PATH_YOUR_PROJECT
$ cd kernel
$ make ARCH=arm64 kedge_defconfig -jN
$ make ARCH=arm64 rk3399-khadas-edge-android.img -jN

Build android:

$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch rk3399-userdebug
$ make installclean
$ make -jN
$ ./mkimage.sh

Note: Replace ‘N’ as the number you want when you run ‘make -jN

After executing./mkimage.sh, generate a complete firmware package in the rockdev/Image-xxx/directory (xxx is the product name of the specific lunch)

rockdev/Image-xxx/
├── MiniLoaderAll.bin
├── boot.img
├── dtbo.img
├── kernel.img
├── misc.img
├── oem.img
├── parameter.txt
├── pcba_small_misc.img
├── pcba_whole_misc.img
├── recovery.img
├── resource.img
├── system.img
├── trust.img
├── uboot.img
├── update.img
├── vbmeta.img
└── vendor.img

Packing update.img:

$ cd PATH_YOUR_PROJECT
$ source build/envsetup.sh
$ lunch rk3399-userdebug
$ ./pack_image.sh

See Also