• 基于Android 10系统的ROC-RK3399-PC Pro源码编译


    在这里插入图片描述

    ROC-RK3399-PC Pro资料下载处:https://www.t-firefly.com/doc/download/145.html
    
    • 1

    一、开发环境搭建

    Android 10 SDK的编译对PC机的要求不低,据官方介绍:

    64 位 CPU
    16GB 物理内存 + 交换内存
    30GB 空闲的磁盘空间用于构建,源码树另外占用大约 25GB, 如果要编译源码则还需要 150GB 的磁盘空间
    
    • 1
    • 2
    • 3

    安装 OpenJDK 8:

    $ sudo apt-get install openjdk-8-jdk
    
    • 1

    提示:安装 openjdk-8-jdk,会更改 JDK 的默认链接,这时可用:

    $ sudo update-alternatives --config java
    $ sudo update-alternatives --config javac
    
    • 1
    • 2

    来切换 JDK 版本。SDK 在找不到操作系统默认 JDK 的时候会使用内部设定的 JDK 路径,因此,为了让同一台机器可以编译 Android 5.1 及之前的版本,去掉链接更方便:

    $ sudo /var/lib/dpkg/info/openjdk-8-jdk:amd64.prerm remove
    
    • 1

    编译系统最好选用Ubuntu 18.04,以下是基于18.04的环境搭建:

    $ sudo apt-get update
    
    $ sudo apt-get install git gnupg flex bison gperf libsdl1.2-dev \
    libesd-java libwxgtk3.0-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-dev gcc-multilib libswitch-perl libssl-dev unzip zip
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    编译过程中如何存在缺少某些依赖包,根据提示去安装即可!

    二、下载Android 10 SDK

    直接从ROC-RK3399-PC Pro资料下载处(https://www.t-firefly.com/doc/download/145.html)找到SDK下载即可!

    下载完成后验证一下MD5码,参考官方维基:

    $ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.001
    $ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.002
    $ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.003
    $ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.004
    $ md5sum /path/to/Firefly-RK3399_Android10.0_git_20211222.7z.005
    
    fb41fcdc48b1cf90ecac4a5bb8fafc7a  Firefly-RK3399_Android10.0_git_20211222.7z.001
    82d665fb54fb41245d9317312e7b7578  Firefly-RK3399_Android10.0_git_20211222.7z.002
    0dd40827976200a6fb61623c9e87fe7c  Firefly-RK3399_Android10.0_git_20211222.7z.003
    32324c3afe615394ee4cdf842c53ea8d  Firefly-RK3399_Android10.0_git_20211222.7z.004
    9b1656ae07b4fe9ddf7d9ef2dfa2f95a  Firefly-RK3399_Android10.0_git_20211222.7z.005
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在一般目录解压SDK(非共享文件夹、非挂载文件夹以及非英文目录):

    $ ./Firefly-RK3399_Android10.0_git_20210114.7z.001 -ork3399_Android10.0
    $ cd ./rk3399_Android10.0
    $ git reset --hard
    
    • 1
    • 2
    • 3

    更新SDK:

    $ cd ./RK356X_Android11.0
    
    # 下载远程 bundle 仓库
    $ git clone https://gitlab.com/TeeFirefly/rk3399-android10.0-bundle.git .bundle
    
    # 若下载仓库失败,目前 bundle 仓库占用空间较大,所以同步的时候可能会出现卡住或失败的问题,
    # 可以从云盘下载 bundle 并解压到 SDK 根目录,解压指令如下:
    $ 7z x rk3399-android10.0-bundle.7z  -r -o. && mv rk3399-android10.0-bundle/ .bundle/
    
    # 更新 SDK,并且后续更新不需要再次拉取远程仓库,直接执行以下命令即可
    $ .bundle/update
    
    # 按照提示已经更新内容到 FETCH_HEAD,同步 FETCH_HEAD 到 firefly 分支
    $ git rebase FETCH_HEAD
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    三、编译Android 10 SDK

    由于 ROC-RK3399-PC Pro 是对 ROC-RK3399-PC PLUS 硬件上的迭代,所以软件的编译方法是一致。最终生成的固件如:ROC-RK3399-PC-Pro_xxx.img 对 ROC-RK3399-PC PLUS 也是兼容的。

    Firefly官方为了降低用户的编译成本,支持了SDK的一键编译操作!

    目前有两种编译选择,一种是支持HDMI + DP:

    $ ./FFTools/make.sh -d rk3399-roc-pc-plus -j8 -l rk3399_roc_pc_plus-userdebug
    $ ./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus-userdebug

    另一种是支持官方10.1寸显示屏 DM-M10R800 V2(MIPI_DSI0) + HDMI:

    $ ./FFTools/make.sh -j8 -d rk3399-roc-pc-plus-mipi101-JDM101014_BC45_A1 -l rk3399_roc_pc_plus_mipi-userdebug
    $ ./FFTools/mkupdate/mkupdate.sh -l rk3399_roc_pc_plus_mipi-userdebug

    生成的固件位于rockdev/Image-XXX/目录下!

  • 相关阅读:
    第六章 音视频-FFmpeg实现播放器解码和对应数据处理
    Jtti:windows虚拟机如何设定永久静态路由
    在网络隔离下实现文件传输交换,你的方式真的安全吗?
    【实例项目:基于多设计模式下的日志系统(同步&异步)】
    DllMain 入口点
    web3.js:使用eth包
    网络编程套接字socket
    大数据之Kerberos认证
    跨境电商如何更好地备战销售旺季?
    深入体验了4大知名BI分析工具,终于找到了最适合我们公司的一款
  • 原文地址:https://blog.csdn.net/hnjzfwy/article/details/134030125