Android BSP User Guide for rk3399 series 10.0
Contents
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.