当前位置: 首页 > news >正文

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

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

      • 一、开发环境搭建
      • 二、下载Android 10 SDK
      • 三、编译Android 10 SDK

在这里插入图片描述

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

一、开发环境搭建

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

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

安装 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 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

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

二、下载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.005fb41fcdc48b1cf90ecac4a5bb8fafc7a  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

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

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

更新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

三、编译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/目录下!

相关文章:

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

基于Android 10系统的ROC-RK3399-PC Pro源码编译 一、开发环境搭建二、下载Android 10 SDK三、编译Android 10 SDK ROC-RK3399-PC Pro资料下载处:https://www.t-firefly.com/doc/download/145.html一、开发环境搭建 Android 10 SDK的编译对PC机的要求不低&#xff…...

网络滤波器/网络滤波器/脉冲变压器要怎样进行测试,一般要测试哪些参数?

Hqst华强盛导读:网络滤波器/网络滤波器/脉冲变压器要怎样进行测试,一般要测试哪些参数?测试网络滤波器的测试方法和步骤如何,需用到哪些测试工具和仪器设备呢? 一,网络流量的监控和过滤能力测试&am…...

基于vue天气数据可视化平台

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…...

Go 语言常见的 ORM 框架

ORM(Object-Relational Mapping)是一种编程技术,用于将面向对象编程语言中的对象模型和关系数据库中的数据模型相互映射。ORM框架可以把数据操作从 SQL 语句中抽离出来,将关系型数据库中的表映射成对象,通过面向对象的…...

【错误解决方案】ModuleNotFoundError: No module named ‘cPickle‘

1. 错误提示 在python程序中试图导入一个名为cPickle的模块,但Python提示找不到这个模块。 错误提示:ModuleNotFoundError: No module named cPickle 2. 解决方案 实际上,cPickle是Python的pickle模块的一个C语言实现,通常用于…...

NodeJS14.18.0 安装,以及安装相应版本node-sass

安装了NVM, NodeJS 14.18.0 安装nvm 到c:\nvm目录 务必!!!!!!!! nvm文档手册 - nvm是一个nodejs版本管理工具 - nvm中文网 编辑c:\nvm\settings.txt添加 node_mirror: CNPM Binar…...

cosover是什么?crossover23又是什么软件

cosover是篮球里的过人技巧。 1.crossover在篮球中的本意是交叉步和急速交叉步。crossover 是篮球术语,有胯下运球、双手交替运球,交叉步过人、急速大幅度变向等之意。 2.在NBA里是指包括胯下运球、变向、插花在内的过人的技巧。 NBA有很多著名的Cross…...

AR眼镜安卓主板,智能眼镜光机方案定制

AR智能眼镜是一项涉及广泛技术的创新产品,它需要考虑到光学、显示、功耗、散热、延迟、重量以及佩戴人体工学等多个方面的因素,每一个项目都是技术进步所需攻克的难题。 在本文中,我们将重点讨论AR眼镜的主板和光学方案。 首先是AR智能眼镜的…...

Qt中实现页面切换的两种方式

文章目录 方式一 :使用QStackedWidget讲解代码结构main.cpp完整代码运行结果: 方式二 :代码结构完整代码mainwindow.hnewmainwindow.hmain.cppmainwindow.cppnewmainwindow.cppmainwindow.uinewmainwindow.ui 效果 方式一 :使用QS…...

公司电脑如何限制安装软件

公司电脑如何限制安装软件 安企神终端管理系统下载使用 在企业环境中,电脑已经成为企业中必不可少的办公工具,确保员工的生产力和公司的信息安全是至关重要的。为了实现这一目标,公司可能会限制员工在某些情况下安装软件或者由管理员来为终…...

【C++】STL容器——list类的使用指南(含代码演示)(13)

前言 大家好吖,欢迎来到 YY 滴C系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! 目录 一、list 类——基本介绍二、list 类——…...

Table-GPT:让大语言模型理解表格数据

llm对文本指令非常有用,但是如果我们尝试向模型提供某种文本格式的表格数据和该表格上的问题,LLM更有可能产生不准确的响应。 在这篇文章中,我们将介绍微软发表的一篇研究论文,“Table-GPT: Table- tuning GPT for Diverse Table…...

基于单片机的温湿度和二氧化碳检测系统设计

目录 摘 要... 2 第一章 绪论... 5 1.1 研究课题背景... 5 1.2 国内外发展概况... 7 1.3 课题研究的目的... 8 1.4 课题的研究内容及章节安排... 9 第二章 二氧化碳和温湿度检测系统控制系统的设计方案... 11 2.1 设计任务及要求... 11 2.2 二氧化碳和…...

leetcode做题笔记204. 计数质数

给定整数 n ,返回 所有小于非负整数 n 的质数的数量 。 示例 1: 输入:n 10 输出:4 解释:小于 10 的质数一共有 4 个, 它们是 2, 3, 5, 7 。示例 2: 输入:n 0 输出:0示例 3&#…...

MySQL Server 5.5 软件和安装配置教程

MySQL 5.5.58(32/64位)下载链接: 百度网盘:百度网盘 请输入提取码 提取密码:7act 软件简介: MySQL 是由瑞典MySQL AB 公司开发一个关系型数据库管理系统,目前属于 Oracle 旗下产品。MySQL 是最…...

【23种设计模式】依赖倒置原则

个人主页:金鳞踏雨 个人简介:大家好,我是金鳞,一个初出茅庐的Java小白 目前状况:22届普通本科毕业生,几经波折了,现在任职于一家国内大型知名日化公司,从事Java开发工作 我的博客&am…...

C++ 结构简介

假设要存储有关篮球运动员的信息,则可能需要存储他(她)的姓名、工资、身高、体重、平均得 分、命中率、助攻次数等。希望有一种数据格式可以将所有这些信息仔储在一个单元中。数组不能完成 这项任务,因为虽然数组可以存储多个元素,但所有元素的类型必须相同。也就是说,一个数组…...

element的tabs组件使用问题解决

1.去除el-tabs组件自带的键盘切换功能 今天在使用element的tabs组件时&#xff0c;发现这个tab组件自带了按键盘左右方向&#xff0c;切换tab的功能&#xff0c;可以通过使用keydown.native.capture.stop去除该事件 <el-tabs v-model"editableTabsValue"type&qu…...

python实验1 猜数字游戏

实验0&#xff1a;猜数字游戏 1. 猜数字游戏 版本12. 猜数字游戏 版本23. 猜数字游戏 版本34. 猜数字游戏 版本4 1. 猜数字游戏 版本1 题目猜数字游戏。在程序中预设一个0-9之间的整数, 让用户通过键盘输入所猜的数&#xff0c; 如果大于预设的数,显示“你猜的数字大于正确答案…...

docker 中给命令起别名

docker 的有些命令特别复杂&#xff0c;我们可以给它设置别名简化输入&#xff0c;就不用每次都输入那么多了&#xff01;&#xff01;&#xff01; 1. 进入 .bashrc 中修改配置&#xff08; .bashrc 是root下的隐藏文件&#xff09; cd /rootvim .bashrc2. 在 .bashrc 中加入…...

PHP的yaf框架自带插件

Yaf 框架的插件方法触发流程遵循一定的顺序&#xff0c;具体流程如下 Bootstrap 类的 _initPlugin 方法&#xff1a;在 Yaf 应用程序启动时&#xff0c;首先会执行 Bootstrap 类的 _initPlugin 方法。在这个方法中&#xff0c;你可以注册各种插件。例如&#xff1a; phpCopy …...

SpringCloud Alibaba【三】Gateway

Gateway配置与使用 前言新建gateway子项目pom.xml配置文件启动类访问接口方式 测试拓展 前言 在工作中遇到一种情况&#xff0c;一个父项目中有两个子项目。实际使用时&#xff0c;需要外网可以访问&#xff0c;宝信软件只能将一个端口号发布在外网上&#xff0c;所以需要运用…...

Azure - 机器学习实战:快速训练、部署模型

本文将指导你探索 Azure 机器学习服务的主要功能。在这里&#xff0c;你将学习如何创建、注册并发布模型。此教程旨在让你深入了解 Azure 机器学习的基础知识和常用操作。 关注TechLead&#xff0c;分享AI全维度知识。作者拥有10年互联网服务架构、AI产品研发经验、团队管理经验…...

C语言十进制转其它进制

短除法介绍 短除法&#xff1a; 主要功能为将十进制数据转为其它进制的数据&#xff0c;假设我们要转换为 X 进制&#xff0c;那么具体的流程如下&#xff1a; 十进制数字不断除以 X&#xff0c;直到商为 0 记录每次计算得到的余数 将余数倒序输出&#xff0c;即为对应的 X 进…...

网络建设 之 React数据管理

React作为一个用于构建用户界面的JavaScript库&#xff0c;很多人认为React仅仅只是一个UI 库&#xff0c;而不是一个前端框架&#xff0c;因为它在数据管理上是缺失的。在做一个小项目的时候&#xff0c;维护的数据量不多&#xff0c;管理/维护数据用useState/useRef就足够了&…...

如何隐藏woocommerce 后台header,woocommerce-layout__header

如何隐藏woocommerce 后台header&#xff0c;woocommerce-layout__header WooCommerce |Products Store Activity| Inbox| Orders| Stock| Reviews| Notices| breadcrumbs 在 functions.php 里添加如下代码即可&#xff1a; // Disable WooCommerce Header in WordPress Admi…...

通俗易懂的理解 解耦 概念

解耦&#xff08;Decoupling&#xff09;是计算机科学和软件工程中的一个概念&#xff0c;指的是降低系统中不同部分之间的依赖性&#xff0c;使系统的各个组件能够相对独立地进行开发、维护和演化。解耦的主要目标是减少组件之间的紧密耦合&#xff0c;以提高系统的灵活性、可…...

全志A40i android7.1 增加Vlan功能

一&#xff0c;VLAN基础知识 1.VLAN的定义&#xff1a; VLAN&#xff08;Virtual Local Area Network&#xff09;即虚拟局域网&#xff0c;是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。VLAN内的主机间可以直接通信&#xff0c;而VLAN间不能直接通信&#xff0c;从…...

NAT技术与代理服务器

目录 一、NAT与NAPT技术 1.NAT技术 2.NAPT技术 &#xff08;1&#xff09;四元组的唯一性 &#xff08;2&#xff09;数据的传输过程 &#xff08;3&#xff09;NAPT的缺陷 二、代理服务器 1.正向代理和反向代理 2.代理服务器的应用 &#xff08;1&#xff09;游戏加…...

关于报错java.util.ConcurrentModificationException: null的源码分析和解决

一般有这种问题,方法中至少会有List或者Map下的至少两个子类,有可能参数类型相同,也有可能不同都有可能触发这个问题!其主要原因是使用了ArrayList进行删除操作或者使用iterator遍历集合的同时对集合进行修改都有可能会出现这个问题 ArrayList属于List下的子类 需要区分的是Li…...