Compile Android8.1
Download Android SDK
Due to the larger SDK, you can choose the cloud disk to download Firefly-RK3399_Android8.1_xxx.7za from the download page (you can directly use the Firefly-RK3399 source package):
After the download is complete, verify the MD5 code before decompression:
$md5sum ~/firefly_rk3399_android8.1_git_20211217.7z.001
$md5sum ~/firefly_rk3399_android8.1_git_20211217.7z.002
$md5sum ~/firefly_rk3399_android8.1_git_20211217.7z.003
48b4cfcb538cdc39ea53349989691617 firefly_rk3399_android8.1_git_20211217.7z.001
05776d4966d92efdcb88170355d8fbd4 firefly_rk3399_android8.1_git_20211217.7z.002
c83f54d89b4cde6eb620b92cd2e99a05 firefly_rk3399_android8.1_git_20211217.7z.003Then unzip:
mkdir -p ~/proj/roc-rk3399-pc
cd ~/proj/roc-rk3399-pc
7z x ~/firefly_rk3399_android8.1_git_20211217.7z.001 -r -o.
git reset --hardUpdate the remote warehouse:
git remote rm origin
git remote add gitlab git@gitlab.com:TeeFirefly/firenow-oreo-rk3399.gitSynchronize the source code from gitlab:
git pull gitlab firefly-rk3399:firefly-rk3399You can also view the source code online at the following address: [https://gitlab.com/TeeFirefly/firenow-oreo-rk3399#]
ROC-RK3399-PC product compilation method
HDMI display compilation
./FFTools/make.sh -d rk3399-roc-pc -j8 -l ROC_RK3399_PC-userdebug
./FFTools/mkupdate/mkupdate.sh -l ROC_RK3399_PC-userdebug-
HDMI + EDP display compilation
-
Single LVDS
./FFTools/make.sh -d rk3399-roc-pc-edp -j8 -l ROC_RK3399_PC-userdebug
./FFTools/mkupdate/mkupdate.sh -l ROC_RK3399_PC-userdebugManually compile Android 8.1
Before compiling, execute the following command to configure environment variables:
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- Compile kernel:
cd ~/proj/ROC-RK3399-PC/kernel/
make ARCH=arm64 firefly_defconfig
make -j8 ARCH=arm64 rk3399-roc-pc.img- Compile uboot:
cd ~/proj/ROC-RK3399-PC/u-boot/
make rk3399_defconfig
make ARCHV=aarch64 -j8- Compile Android:
cd ~/proj/ROC-RK3399-PC/
source build/envsetup.sh
lunch ROC_RK3399_PC-userdebug
make installclean
make -j8
./mkimage.shUse Firefly official script to compile
- Compile the kernel separately:
cd ~/proj/ROC-RK3399-PC/
./FFTools/make.sh -k -j8- Compile the uboot separately:
cd ~/proj/ROC-RK3399-PC/
./FFTools/make.sh -u -j8- Compile Android upper layer separately:
cd ~/proj/ROC-RK3399-PC/
./FFTools/make.sh -a -j8- Compile ubooot, kernel, Android at the same time:
cd ~/proj/ROC-RK3399-PC/
./FFTools/make.sh -j8Packaged into unified firmware
After compiling, you can use Firefly's official script to package into unified firmware, execute the following command:
./FFTools/mkupdate/mkupdate.sh -l ROC_RK3399_PC-userdebugAccording to different -l XXX-userdebug parameters, the packaged unified firmware will be stored in different directories (rockdev/image-XXX/): product name XXX_XXX_date XXX.img
It is also very simple to package the unified firmware update.img under Windows, copy the compiled files to the rockdev/Image directory of AndroidTool, and then run the mkupdate.bat batch file under the rockdev directory Create update.img and store it in the rockdev/Image directory.
Partition mirror
- boot.img:The Android initramfs image contains the basic file system of the Android root directory, which is responsible for initializing and loading the system partition.
- system.img: Android file system partition image in ext4 file system format.
- kernel.img: Kernel image.
- resource.img: Resource image, including boot pictures and kernel device tree.
- misc.img: The misc partition image is responsible for switching the startup mode and passing the parameters of the emergency mode.
- recovery.img: Recovery mode image.
- rk3399_loader_v1.12.112.bin:Loader file.
- uboot.img: U-Boot image file.
- trust.img: Arm trusted file (ATF) image file.
- parameter.txt: Partition layout and kernel command line.
- vendor.img: TODO
- oem.img: TODO
- baseparameter.img: TODO
Other Android versions
- Main maintenance:
-
Support but not maintain:

