This document mainly introduces how to compile the Android source code. You will learn how to compile different versions of android source code.
Before you start to build, make sure you have done all the Preperations listed above.
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 android-10.config rk3399.config $ make ARCH=arm64 rk3399-khadas-edge-android.img -jN
Build Android:
$ cd PATH_YOUR_PROJECT $ source build/envsetup.sh $ lunch rk3399_Android10-userdebug $ make installclean $ make -jN $ ./mkimage.sh
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 ├── super.img └── vendor.img
Packing update.img:
$ cd PATH_YOUR_PROJECT $ source build/envsetup.sh $ lunch rk3399_Android10-userdebug $ ./pack_image.sh
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
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
Packing update.img:
$ cd PATH_YOUR_PROJECT $ source build/envsetup.sh $ lunch rk3399-userdebug $ ./pack_image.sh
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
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