Android7的编译环境和Android8是一样的。 首先从网盘下载迅为提供的 android 7.1 源码,在光盘的“iTOP-3399光盘资料\20210109(使用最新日期即可)\08源码_Android7.1文件系统\rk3399_7.1_industry_20201009.tar.gz”下载后得到的源码文件目录如下图: 拷贝解压生产的rk3399_7.1_industry_20201009.tar.gz(源码的发布日期会更新)文件到 Ubuntu 系统,然后在 Ubuntu 系统下解压,如下图所示: ls rk3399_7.1_industry_20201009.tar.gz tar -vxf rk3399_7.1_industry_20201009.tar.gz 解压完成后,得到文件夹:rk3399_7.1_industry,如下图: 1 设置屏幕打开Android7的源码,进入/home/topeet/rk3399_7.1_industry/kernel/arch/arm64/boot/dts/rockchip目录下,打开rk3399-topeet.dtsi设备树文件,如下图所示,默认源码里面指定屏幕是10.1寸,如果我们想源码里面指定屏幕是其他尺寸,将指定屏幕的宏定义生效就好了。如果想指定屏幕为HDMI屏幕,指定屏幕宏定义的任意一个即可支持HDMI屏幕。 例如,我想指定屏幕为7寸屏,修改设备树,如下图所示: 2 整体编译注意!!!编译Android 7 要首先输入“su”命令,然后输入“topeet”密码,切换到root用户下再开始编译。 指定好屏幕后,使用 cd 命令进入到rk3399_7.1_industry文件夹,然后输入编译脚本“./build-rk3399-topeet.sh ”开始编译 android 7.1 系统,如下图: 编译中,如下图所示: 编译的过程中,可能会遇到错误,出现这个错误是由于电脑内存不足,如下图所示: 我们需要终端输入如下命令: export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" ./prebuilts/sdk/tools/jack-admin kill-server ./prebuilts/sdk/tools/jack-admin start-server 然后再继续编译,如下图所示: 编译过程如下图所示: 如果编译出现如下图所示的错误,请参考章节Android8系统整体编译 编译完成,如下图所示: 我们进入到rockdev/Image-rk3399_topeet/目录下,可以看到生成的镜像,如下图所示: 3 单独编译单独编译前,我们将原来的编译脚本备份一下,然后将光盘资料“iTOP-3399开发板\01_iTOP-3399光盘资料\20210408(使用最新日期即可)\08源码_Android7.1文件系统\Android7编译脚本.zip”目录下的编译脚本替换原来的编译脚本,再进行单独编译操作。 3.1 单独编译uboot注意!!!编译Android 7 要首先输入“su”命令,然后输入“topeet”密码,切换到root用户下再开始编译。 使用 cd 命令进入到rk3399_7.1_industry文件夹,然后输入编译脚本“./build-rk3399-topeet.sh uboot”开始编译 android7系统的uboot,如下图所示: 编译成功如下图所示: 编译完成后生成的文件位于 u-boot 目录: 3.2 单独编译内核和设备树注意!!!编译Android 7 要首先输入“su”命令,然后输入“topeet”密码,切换到root用户下再开始编译。 使用 cd 命令进入到 rk3399_7.1_industry文件夹,然后输入编译脚本“./build-rk3399-topeet.sh kernell”开始编译 android7 系统的内核和设备树,如下图所示: 编译完如下图所示: 编译完成后生成的文件位于 kernel 目录 。 如果修改了内核可以单独烧写kernel.img 。如果修改了设备树可以单独烧写 resource.img,这里的boot.img 用于 ota 升级,并非对应于otg烧写的 boot 分区。 3.3 单独编译Android文件系统注意!!!编译Android 7 要首先输入“su”命令,然后输入“topeet”密码,切换到root用户下再开始编译。 使用 cd 命令进入到 rk3399_7.1_industry文件夹,然后输入编译脚本“./build-rk3399-topeet.sh android”开始编译 android 8.1 系统的文件系统,如下图所示: 文件系统编译完如下图所示: 如果出现报错,如下图所示: 我们需要在终端输入如下命令,然后再继续编译 export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4g" ./prebuilts/sdk/tools/jack-admin kill-server ./prebuilts/sdk/tools/jack-admin start-server 编译完成后生成的文件位于 out/target/product/rk3399_topeet目录下 如果您修改了 android 系统源码可以单独烧写 system.img,如果修改的是 android 系统中位于
ramdisk 中的内容,则需要重新烧写 boot.img。注意: 这里的 boot.img 并不对应于 otg 烧写中的 boot 分区,这里的 boot.img 用于 ota 升级,烧写用的 boot.img 是使用 mkimage.sh脚本 生成的。 3.4 编译打包镜像update.img使用 cd 命令进入到 rk3399_7.1_industry文件夹,然后输入编译脚本“./build-rk3399-topeet.sh -u”开始编译update.img镜像,如下图所示: 编译完成,如下图所示: 3.5 清除编译命令使用 cd 命令进入到 rk3399_7.1_industry文件夹,然后输入编译脚本“./build-rk3399-topeet.sh clean”开始清除编译,如下图所示:
|