RK3399 Android7.1 编译

文章目录

  • RK3399 Android7.1 编译
    • 前言
    • 设置 Linux 编译环境
      • 安装 JDK
        • 可选- 更新默认的 Java 版本
      • 安装所需的程序包(Ubuntu 14.04)
    • 下载 Android SDK

前言

RK官网编译

Android搭建编译环境

设置 Linux 编译环境

使用的环境Linux 16.0.4

安装 JDK

如果 Ubuntu >= 15.04

请运行以下命令:

sudo apt-get update
sudo apt-get install openjdk-8-jdk
可选- 更新默认的 Java 版本

运行以下命令来更新默认的 Java 版本:

sudo update-alternatives --config java
sudo update-alternatives --config javac

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

sudo /var/lib/dpkg/info/openjdk-8-jdk:amd64.prerm remove
安装所需的程序包(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

安装程序包问题

 Unable to locate package libwxgtk2.8-dev因为使用的Ubuntu系统是16.04 所以应该用sudo apt-get install libwxgtk3.0-dev

下载 Android SDK

  • Android SDK 源码包比较大,可以通过如下方式获取Android7.1源码包:

    • 下载链接

下载完成后先验证一下 MD5 码:

$md5sum rk3399_firefly_industry_android7.1_20190628.7z.001
92084d35f40bebea6466d39d52bf9704 rk3399_firefly_industry_android7.1_20190628.7z.001
$md5sum rk3399_firefly_industry_android7.1_20190628.7z.002
f25da955fdb9700fcf53569b27debdfe  rk3399_firefly_industry_android7.1_20190628.7z.002

确认无误后,就可以解压:

$mkdir firefly-rk3399
$cd ~/proj/
$7z x ./rk3399_firefly_industry_android7.1_20190628.7z.001 -ofirefly-rk3399
$cd ./firefly-rk3399
$git reset --hard //回退、撤销
注意:解压后务必要先更新远程仓库。 以下为从 gitlab 处更新的方法:
# 进入SDK根目录
1. cd ~/proj/firefly-rk3399   # 下载远程bundle仓库,若下载仓库失败,则可以从下方百度云下载[bundle压缩包]并解压到SDK根目录
2. git clone https://gitlab.com/TeeFirefly/rk3399-nougat-bundle.git .bundle# 更新SDK,并且后续更新不需要再次拉取远程仓库,直接执行bundle文件下的update脚本即可
3. .bundle/update  或者  ./rk3399-nougat-bundle/update# 按照提示已经更新内容到 FETCH_HEAD,同步FETCH_HEAD到firefly-rk3399分支
4. git rebase FETCH_HEAD

百度云下载bundle压缩包

下面是执行编译流程

可以参考官方文档

这边就直接执行了同时编译ubooot、kernel、android
执行./FFTools/make.sh -j8
遇到问题
1.Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
参考:https://stackoverflow.com/questions/40772003/cannot-use-config-cc-stackprotector-strong-fstack-protector-strong-not-support/40772208 这并不能效果
经同事指导, 这样sudo ./FFTools/make.sh -j8 执行,ok2.target thumb C++: libskia_static_32 <= external/skia/src/images/SkImageDecoder_libbmp.cppninja: fatal: fork: Cannot allocate memory
build/core/ninja.mk:148: recipe for target 'ninja_wrapper' failed需要设置虚拟内存大小:
https://bogdancornianu.com/change-swap-size-in-ubuntu/

打包成统一固件update.img

编译完可以用Firefly官方的脚本打包成统一固件,执行如下命令:
./FFTools/mkupdate/mkupdate.sh update遇到问题
TabError: inconsistent use of tabs and spaces in indentationFile "device/rockchip/common/auto_generator.py", line 114continue
这个是tab和空格的问题
也可以这样执行 sudo ./FFTools/mkupdate/mkupdate.sh update
还有这个问题:
(result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa3 in position 20: invalid start byte
查找文件是在open('','r')方法中
解决方法:’r‘ 改为’rb‘

参考:(result, consumed) = self._buffer_decode(data, self.errors, final)

结果如图:映像文件已生成

参考:

RK3399编译Android固件

ubuntu 18.04编译Android 7.1源码

RK3399编译

AOSP 安卓源码7.1-ubuntu17.04编译问题

ubuntu中swap(虚拟内存)设置

RK3399 Android7.1 编译相关推荐

  1. java获取apk启动activity_[RK3399] android7.1 设置开机启动apk

    平台: RK3399+android7.1 开机启动apk (1)修改类: ./frameworks/base/services/core/java/com/android/server/am/Act ...

  2. android手机底噪,[RK3399][Android7.1] 调试笔记 --- Codec播放音乐会有底噪

    Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 背景: 移植完Codec RT5640之后,发现播放声音的时候底部有噪声. 用示波器测量到的左右声道波 ...

  3. [RK3399][Android7.1] 调试笔记 --- 系统默认时钟配置

    OS: Android 7.1 Board: Firefly-RK3399 Kernel: v4.4.55 分两个模块,一个是cpu,还有一个是pmu模块,这里只举例cpu,cpu又分在两个文件中定义 ...

  4. [RK3399][Android7.1] 调试笔记 --- I2S1工作输出是12MHz问题

    Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 现象: 使用I2S1通道,测量到的I2S MCLK是12MHz. 理论上应该是11.288MHz. 原 ...

  5. gcc android开发环境,[RK3399][Android7.1]开发环境搭建

    最后还是安装了双系统,在Ubuntu16.04下编译的,以下的解决方法依然后效:/(ㄒoㄒ)/~~ ######################黄金分割线####################### ...

  6. [RK3399][Android7.1]触摸屏TP,敦泰FT5436驱动移植

    最近在RK3399上移植了敦泰的FT5436触摸屏驱动,分享出来供大家参考. 找敦泰厂家索取FT5436的驱动包,驱动包名称:focaltech_touch 没有什么需要特别注意的地方,按照驱动包里面 ...

  7. [RK3399][Android7.1] 调试笔记 --- sdcard守护进程启动位置

    Platform: RK3399 OS: Android 7.1 Kernel: v4.4.83 Board: Firefly-RK3399 之前版本sdcard守护进程都是放在init.rc中启动: ...

  8. [RK3399] [Android7.1] UAC配置,使用USB转音频喇叭播放声音

    因为接口问题,需要在RK3399的板子上使用USB转音频接音箱外放,从网上购买了USB转音频模块,在电脑上和手机上测试接音箱都可以正常播放,但是接到RK3399时,没有声音,从网上查资料发现,原来是R ...

  9. RK3399 Android7.1 try 'jack-diagnose' or see Jack server log

    CPU:RK3399 系统:Android 7.1 Android 7.1系统使用 jack-server 作为 Java 代码编译器 jack-server 由两个配置文件来决定用户使用的端口 /h ...

最新文章

  1. 前端开发进阶手册.pdf
  2. 10 个最值得 Python 新人练手的有趣项目 | 赠书
  3. android 拖动的view,Android实现随意拖动View效果
  4. ITK:创建拉普拉斯内核
  5. [Vue 牛刀小试]:第八章 - 组件的基础知识
  6. 高级 | Java中获取类名的3种方法
  7. [转载]用UglifyJS2合并压缩混淆JS代码——javascript系列
  8. 1进程 ppid_杀死僵尸进程,你需要这些神奇的Linux命令行
  9. Oracle日志切换及频率跟踪脚本
  10. 行业动态_天才、忽悠与炮灰
  11. Web服务器是什么意思?
  12. 腾讯优图|人脸3D重建与渲染技术研究与应用
  13. C++常用函数(刷PAT甲级总结)
  14. 生产制造管理系统快速提高生产效率
  15. vscode远程开发环境配置
  16. GaussDB高斯数据库(SQL语法分类)
  17. 老男孩教育|0基础转行学Linux,完美逆袭,收获满意Offer!
  18. 41.83亿元!985北京航空航天大学青岛校区最新进展来了
  19. Controll 和service、DAO的区别和联系
  20. STC15W408AS最小系统开发板注意事项与烧写实际操作

热门文章

  1. GitHub安装包下载
  2. MacX DVD Ripper Pro for Mac(DVD格式转换工具)
  3. JMeter 组件2:Logic Controllers 逻辑控制器
  4. Hadoop Delegation Tokens详解
  5. 我开源了一个私人云盘——蓝眼云盘 1
  6. Linux桌面池,24个值得尝试的Linux桌面环境
  7. 什么是SSD固态硬盘的QLC、SLC、MLC、TLC
  8. C++ Primer Plus 读书笔记
  9. 高校严查学位论文复制比!降至10%!博士论文需打印40份!
  10. 基于springboot垃圾分类网站设计实现【毕业论文、源码】