fireflyFaceRK3399主板编译固件介绍

编译 android 固件 准备工作 编译 android 对机器的配置要求较高:
64 位 cpu
16gb 物理内存+交换内存
30gb 空闲的磁盘空间用于构建,源码树另外占用大约 25gbubuntu 14.04 操作系统,经测试,ubuntu 12.04 也可以编译运行成功,只需要满足软硬件配置即可。
安装 openjdk 8:
sudo apt-get install openjdk-8-jdk
提示:安装 openjdk-8-jdk,会更改 jdk 的默认链接,这时可用:
$ sudo update-alternatives --config java $ sudo update-alternatives --config javac
来切换 jdk 版本。sdk 在找不到操作系统默认 jdk 的时候会使用内部设定的 jdk 路径,因此,为了让同一台机器可以编译 android 5.1 及之前的版本,去掉链接更方便:
$ sudo /var/lib/dpkg/info/openjdk-8-jdk:amd64.prerm remove
ubuntu 12.04 软件包安装:
sudo apt-get install git gnupg flex bison gperf build-essential \ zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ g++-multilib mingw32 tofrodos gcc-multilib ia32-libs \ python-markdown libxml2-utils xsltproc zlib1g-dev:i386 \ lzop libssl1.0.0 libssl-dev
ubuntu 14.04 软件包安装:
sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \ libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl \ libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \ xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \ lib32readline-gplv2-dev gcc-multilib libswitch-perl \ libssl1.0.0 libssl-dev
下载 android sdk android sdk 源码包比较大,可以通过如下方式获取android7.1源码包:
下载完成后先验证一下 md5 码:
$ md5sum /path/to/rk3399_firefly_industry_android7.1_20190628.7z.001 92084d35f40bebea6466d39d52bf9704 rk3399_firefly_industry_android7.1_20190628.7z.001 $ md5sum /path/to/rk3399_firefly_industry_android7.1_20190628.7z.002 f25da955fdb9700fcf53569b27debdfe rk3399_firefly_industry_android7.1_20190628.7z.002
确认无误后,就可以解压:
mkdir -p ~/proj/firefly-rk3399 cd ~/proj/firefly-rk3399 7z x /path/to/rk3399_firefly_industry_android7.1_20190628.7z.001 -r -o./ git reset --hard
注意:解压后务必要先更新远程仓库。 以下为从 gitlab 处更新的方法:
# 进入sdk根目录 1. cd ~/proj/firefly-rk3399 # 下载远程bundle仓库,若下载仓库失败,则可以从下方百度云下载[bundle压缩包]并解压到sdk根目录 2. git clone https://gitlab.com/teefirefly/rk3399-industry-nougat-bundle.git .bundle # 更新sdk,并且后续更新不需要再次拉取远程仓库,直接执行bundle文件下的update脚本即可 3. .bundle/update 或者 ./rk3399-industry-nougat-bundle/update # 按照提示已经更新内容到 fetch_head,同步fetch_head到firefly-rk3399分支 4. git rebase fetch_head
face-rk3399产品编译方法 完整编译face-rk3399 cd ~/proj/firefly-rk3399/ ./fftools/make.sh -d rk3399-firefly-face-mipi8 -j8 -l rk3399_firefly_face-userdebug ./fftools/mkupdate/mkupdate.sh -l rk3399_firefly_face-userdebug
手动编译face-rk3399 编译前执行如下命令配置环境变量:
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
编译kernel:
cd ~/proj/firefly-rk3399/kernel/ make arch=arm64 firefly_defconfig make -j8 arch=arm64 rk3399-firefly-face-mipi8.img
编译uboot:
cd ~/proj/firefly-rk3399/u-boot/ make rk3399_box_defconfig make archv=aarch64 -j8
编译android:
cd ~/proj/firefly-rk3399/ source build/envsetup.sh lunch rk3399_firefly_face-userdebug make -j8 ./mkimage.sh
打包成统一固件 update.img 编译完可以用firefly官方的脚本打包成统一固件,执行如下命令:
./fftools/mkupdate/mkupdate.sh
打包完成后会在rockdev/image-rk3399_firefly_face/下生成face-rk3399_android7.1.2_default_xxxxxx.img固件。
在 windows 下打包统一固件 update.img 也很简单,将编译生成的文件拷贝到 androidtool 的 rockdev\image 目录中,然后运行 rockdev 目录下的 mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\image 目录里。
烧写分区映像 编译的时候执行 ./mkimage.sh 会重新打包 boot.img 和 system.img, 并将其它相关的映像文件拷贝到目录 rockdev/image-rk3399_firefly_face/ 中。以下列出一般固件用到的映像文件:
boot.img :android 的初始文件映像,负责初始化并加载 system 分区。
kernel.img :内核映像。
misc.img :misc 分区映像,负责启动模式切换和急救模式的参数传递。
parameter.txt :emmc的分区信息
recovery.img :急救模式映像。
resource.img :资源映像,内含开机图片和内核的设备树信息。
system.img :android 的 system 分区映像,ext4 文件系统格式。
trust.img :休眠唤醒相关的文件
rk3399_loader_v1.08.106.bin :loader文件
uboot.img :uboot文件
请参照 如何升级固件 一文来烧写分区映像文件。
如果使用的是 windows 系统,将上述映像文件拷贝到 androidtool (windows 下的固件升级工具)的 rockdev\image 目录中,之后参照升级文档烧写分区映像即可,这样的好处是使用默认配置即可,不用修改文件的路径。
update.img 方便固件的发布,供终端用户升级系统使用。一般开发时使用分区映像比较方便。

天下英才尽收麾下 奥士康实施战略人才培养“百人计划”
SQL构造查询的方式详细概述
比特币在今年将会发生哪些趋势
OPPO手机宣布,成功实现了采用3D结构光技术的5G视频通话演示
Vim分屏怎么做
fireflyFaceRK3399主板编译固件介绍
DTOS帝拓思3D引擎将帮助实现国产化替代
环保局CEMS数采仪
Apple Watch Series 7再次升级换代
短波超再生式接收机,Shortwave radio
AI时代下的新黑科技家居神器,智能魔镜显示屏来袭
运用替代能源进行远端感测
加密数字货币市场为何呈现出暴风式发展
比特币价格短暂触及9000美元后迅速回落
科学家利用无人机创建小型机载量子网络
VR/AR市场群雄逐鹿 全力推进产业进一步落地
工程师在自动驾驶汽车中的角色
极端应用环境下SAC焊点金属间化合物厚度增长的担忧
PyTorch教程-13.7参数服务器
以度制燥 华硕主板邀你开启ROG DAY重庆站