Android BSP User Guide for rk3399 series 10.0

From ESS-WIKI
Jump to: navigation, search

Android BSP Version

Android 10.0

Kernel 4.19.111

Build Environment on Host

Currently, we adopt Docker as build environment.

You can get the latest version of advrisc/u18.04-rk3399abv10 Docker image for developing Rockchip RK3399 projects.

Docker command:

docker pull advrisc/u18.04-rk3399abv10:latest;

Run Docker example

Step1 Run docker container (example)

 $ docker run -it --name android_Q10 -v /home/bsp/myandroid:/home/adv/BSP:rw advrisc/u18.04-rk3399abv10:latest /bin/bash

Step2 In container, change the user. (example)


 adv@7cc0fa834366:~$ sudo chown adv:adv -R BSP

Getting Android Source Code

$ cd ~/BSP
$ sudo git clone https://github.com/ADVANTECH-Rockchip/repo.git
$ mkdir rk3399_android_Q10
$ cd rk3399_android_Q10
$ git config --global user.name "Your Name"
$ git config --global user.email you@example.com
$ ../repo/repo init -u https://AIM-Linux@dev.azure.com/AIM-Linux/RISC-RK3399-Android/_git/android-q10-manifest -b rk3399-androidQ10 -m default.xml
$ ../repo/repo sync
$ ../repo/repo forall -c git checkout -b local --track advantech-azure/rk3399-androidQ10

Build Instructions

$ export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
$ export PATH=$JAVA_HOME/bin:$PATH
$ export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

Build U-boot

Build RSB-4710 U-boot

$ cd u-boot
$ ./make.sh rk3399_rsb4710a2_2G

Build RSB-3710 U-boot

$ cd u-boot
$ ./make.sh rk3399_rsb3710a2_2G

Build ROM-5780 U-boot

$ cd u-boot
$ ./make.sh rk3399_rom5780a3_2G

Build Kernel

Build RSB-4710 platform

$ cd kernel
$ make ARCH=arm64 rk3399_adv_defconfig
$ make ARCH=arm64 rk3399-rsb4710-a2.img -j12

To build the kernel, it needs to install extra packages

sudo apt install libssl-dev liblz4-tool -y

Build RSB-3710 platform

$ cd kernel
$ make ARCH=arm64 rk3399_adv_defconfig
$ make ARCH=arm64 rk3399-rsb3710-a2.img -j12

Build ROM-5780 platform

$ cd kernel
$ make ARCH=arm64 rk3399_adv_defconfig
$ make ARCH=arm64 rk3399-rom5780-a3.img -j12

Build Android

Build RSB-4710 platform

$ source build/envsetup.sh 
$ lunch rsb4710_Android10-userdebug
$ make -j12 2>&1 | tee build-log.txt

Build RSB-3710 platform

$ source build/envsetup.sh 
$ lunch rsb3710_Android10-userdebug
$ make -j12 2>&1 | tee build-log.txt

Build ROM-5780 platform

$ source build/envsetup.sh 
$ lunch rom5780_Android10-userdebug
$ make -j12 2>&1 | tee build-log.txt

Push all image to rockdev folder

$ ./mkimage.sh

All image in

rockdev/Image-rsb4710_Android10

or rockdev/Image-rsb3710_Android10

or rockdev/Image-rom5780_Android10 

./mkimage.sh at previous step will repack boot.img and system.img, and copy other related image files to the rockdev/Image-project/ directory. The common image files are listed below:

boot.img
config.cfg
dtbo.img
kernel.img
MiniLoaderAll.bin
misc.img
odm.img
parameter.txt
pcba_small_misc.img
pcba_whole_misc.img
recovery.img
resource.img
super.img
system.img
trust.img
uboot.img
vbmeta.img
vendor.img

How to update images?

There are three ways to update images:

1._Using_AndroidToool.

There is no limitation by this way.

2._Using_storage(such sd_or_USB_disk)with_update.zip_in_it.

There are some limitations:

(1)The device must be able to boot up to Android system.

(2)Only update images from the same os,  eg : 

        Android6.0 upgrade to Android6.0 or Android7.1 upgrade to Android7.1.

(3)Using update.zip to upgrade. (see more detail in "Create OTA zip" on how to create update.zip)

3._Using_bootup_sd_disk made_by SDDiskTool.

(1)Only update images from the same os,  eg : 

         Android6.0 upgrade to Android6.0 or Android7.1 upgrade to Android7.1.

(2)Using update.img to upgrade.