Android BSP User Guide for rk3399 series 12.0
Contents
Android BSP Version
Android 12.0
Kernel 4.19.232
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 and rk3568 projects.
Docker command:
docker pull advrisc/u18.04-rk3399abv10:latest;
Run Docker example
Step1 Run docker container (example)
docker run --privileged -it --name android_S12 -v /home/your-name/myandroid:/home/adv/BSP:rw advrisc/u18.04-rk3399abv10 /bin/bash
Step2 In container, change the user. (example)
$ 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_S12 $ cd rk3399_android_S12 $ git config --global user.name "Your Name" $ git config --global user.email you@example.com $ git config --global http.postBuffer 52428800000 $ git config --global http.maxRequestBuffer 100M $ git config --global core.compression 0 $ ../repo/repo init -u https://kag-sw.visualstudio.com/RK3399-Android/_git/android-s12-manifest -b rk3399-androidS12 -m default.xml ------If you want to get the latest code, please use default.xml------ ------If you want to get RSB3710 code, please use RK3399_S12_AIV12005.xml------ ------If you want to get RSB4710 code, please use RK3399_S12_AIV12006.xml------ $ ../repo/repo sync -c -f --no-clone-bundle -j`nproc`
Getting Prebuilts and External (must download)
Exit docker and copy the file to /home/your-name/myandroid $ cp prebuilts.tar.gz /home/your-name/myandroid/rk3399_android_S12/android $ cp external.tar.gz /home/your-name/myandroid/rk3399_android_S12/android In container and Unzip file $ docker attach android_S12 $ tar zxvf ~/BSP/rk3399_android_S12/android/prebuilts.tar.gz $ tar zxvf ~/BSP/rk3399_android_S12/android/external.tar.gz
Compile all
Build RSB-4710 project
$ source build/envsetup.sh;lunch rsb4710_Android12-userdebug; $./build.sh -AUCKu
Build RSB-3710 project
$ source build/envsetup.sh;lunch rsb3710_Android12-userdebug; $./build.sh -AUCKu
Build U-boot
Build RSB-4710 U-boot
$ ./make.sh rk3399_rsb4710a2_2G
Build RSB-3710 U-boot
$ ./make.sh rk3399_rsb3710a2_2G
Build Kernel
Build RSB-4710 Kernel
$ cd kernel-4.19 $ make ARCH=arm64 rk3399_adv_defconfig $ make ARCH=arm64 rk3399-rsb4710-a2.img -j12
Build RSB-3710 Kernel
$ cd kernel-4.19 $ make ARCH=arm64 rk3399_adv_defconfig $ make ARCH=arm64 rk3399-rsb3710-a2.img -j12
Build Android
Build RSB-4710 Android
$ source build/envsetup.sh;lunch rsb4710_Android12-userdebug; $ ./build.sh -A
Build RSB-3710 Android
$ source build/envsetup.sh;lunch rsb3710_Android12-userdebug; $ ./build.sh -A
All image in
rockdev/Image-rsb3710_Android12/
rockdev/Image-rsb4710_Android12/
The common image files are listed below:
MiniLoaderAll.bin baseparameter.img boot-debug.img boot.img config.cfg dtbo.img misc.img parameter.txt pcba_small_misc.img pcba_whole_misc.img recovery.img resource.img super.img uboot.img update.img vbmeta.img
How to update images?
There are three ways to update images:
(The corresponding tools are in the RKTools/ directory of the source code)
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.