Firefly开源社区

标题: RK3399编译android7.1系统的教程 [打印本页]

作者: ly850720    时间: 2017-5-21 01:03
标题: RK3399编译android7.1系统的教程
本帖最后由 ly850720 于 2017-5-21 10:12 编辑

1. 首先我的系统是unbntu14.04 ,之所以是这个版本的,因为以前编译6.0.1时用的是这个系统,所以打算直接来编译 7.1 系统2. 首先配置系统环境,安装 JDK 8 版本 ,android 6.0.1需要的jdk是7 的版本  而android 7.1 需要的是 8 的版本,所以要更新jdk。
    方法如下:
现在安装 JDK1.8:
终端命令行:
添加软件源
sudo add-apt-repository ppa:openjdk-r/ppa
更新源
sudo apt-get update
安装 openjdk-8-jdk
sudo apt-get install openjdk-8-jdk

更新环境变量
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
export PATH=${CLASSPATH}:$PATH


注意:java_home 的路径需要根据你们的实际路径去修改,默认如果没有修改的话,应当是和我一致的。


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


sudo apt-get install gcc-arm-linux-gnueabihf \
lzop libncurses5-dev \
libssl1.0.0 libssl-dev



3. 编译源码和SDK 都可能出现 out of memory  和 Communication error with Jack server (52). Try 'jack-diagnose'  编译中断:所以我的习惯 先设置一下 内存大小 同时启动一下  Jack server  。
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server





4.准备安卓源码 ,7.1源码很大,大约在 9G多一点  6.0.1的源码大小是6G多一点 。
  百度云下载 Android SDK代码最新提交:c77e39c Init the Firefly-RK3399 7.1 SDK
   gitlab    git@gitlab.com:TeeFirefly/FireNow-Nougat.git
   

   下载最新固件
   Android百度云

5.下载源码解压到6.0.1教程相同的目录,目的是方便写教程,也好操作,你们可以自行更换目录
   mkdir -p ~/proj/firefly-rk3399
cd ~/proj/firefly-rk3399tar xzvf /path/to/Firefly-RK3399_Android6.0_git_20170310.tar.gzgit reset --hard更新代码
   git pull gitlab firefly-rk3399:firefly-rk3399 (注:目前这个命令是不正确的,原因是源码没有上传,据说正在上传,反正我在编译过程中是没有上传


6.启动编译环境
cd ~/proj/firefly-rk3399/
source build/envsetup.sh
lunch

出现如下选项


我选择的是 15,你们可以按需选择编译的 目标,


7. 默认编译HDMI+DP
./FFTools/make.sh -j8
./FFTools/mkupdate/mkupdate.sh

8. EDP7.85编
./FFTools/make.sh -j8 -d rk3399-firefly-edp -l rk3399_firefly_edp_box-userdebug
./FFTools/mkupdate/mkupdate.sh -l rk3399_firefly_edp_box-userdebug  


打包成统一固件 update.img
编译完可以用Firefly官方的脚本打包成统一固件,执行如下命令:
./FFTools/mkupdate/mkupdate.sh update
以上是我编译7.1 时记录的下过程,不是全对,但是大致是没有问题。



如果 要 进行ROOT时参考  http://developer.t-firefly.com/f ... 2145&highlight=3399
这个帖子,唯一要注意的 就是 步骤三 ,3.然后根据附件中的补丁做修改) 这个是可以通过命令进行打补丁的
命令如下 git am <patch文件名>  但是我没有执行成功,估计是patch文件有些问题,我是手动修改的。 按照文件里说的


device/rockchip/common/init.rk30board.rc           |   19 +-
.../Settings/res/values-zh-rCN/custom_strings.xml  |    8 +
.../Settings/res/values-zh-rHK/custom_strings.xml  |    8 +
.../Settings/res/values-zh-rTW/custom_strings.xml  |    8 +
.../apps/Settings/res/values/custom_strings.xml    |   12 +
.../apps/Settings/res/xml/development_prefs.xml    |    5 +
.../com/android/settings/DevelopmentSettings.java  |   66 +-
system/core/init/property_service.cpp              |    4 +
system/core/libcutils/fs_config.c                  |    2 +-
system/sepolicy/su.te                              |    1 +
28 files changed, 151153 insertions(+), 346 deletions(-)
以上是要修改的文件 ,其中 下面几个文件是新增的。
create mode 100644 packages/apps/Settings/res/values-zh-rCN/custom_strings.xml
create mode 100644 packages/apps/Settings/res/values-zh-rHK/custom_strings.xml
create mode 100644 packages/apps/Settings/res/values-zh-rTW/custom_strings.xml
create mode 100644 packages/apps/Settings/res/values/custom_strings.xml

其余手动修改,  +号是新增的内容  -号是删除的内容


其它 的就没有什么要注意的 。
希望能帮到大家。







   
下载编译后的链接
链接: https://pan.baidu.com/s/1qYi80X2 密码: 72ct



作者: *^_^*    时间: 2017-5-21 12:35
1111111111
作者: 牛头    时间: 2017-5-22 09:00
做得很好,感谢分享~
作者: 暴走的阿Sai    时间: 2017-5-22 11:01
新鲜干货{:4_180:}
作者: mrlikai    时间: 2017-5-22 16:05
你编译的时候遇到过这个问题吗?

aaa@8c12535df6c3:/var/aosp/Firefly-rk3399-7.0$ ./FFTools/make.sh -j8
/var/aosp/Firefly-rk3399-7.0/u-boot /var/aosp/Firefly-rk3399-7.0
#
# configuration written to .config
#
make: *** No rule to make target `include/config/auto.conf', needed by `include/config/uboot.release'.  Stop.
aaa@8c12535df6c3:/var/aosp/Firefly-rk3399-7.0$
作者: FireBLE_blue    时间: 2017-5-24 16:48
mrlikai 发表于 2017-5-22 16:05
你编译的时候遇到过这个问题吗?

aaa@8c12535df6c3:/var/aosp/Firefly-rk3399-7.0$ ./FFTools/make.sh - ...

这个进入u-boot 目录 make distclean 就好
作者: *^_^*    时间: 2017-6-3 00:35

作者: 15822579256    时间: 2018-9-21 10:54
我的源码包解压总是过不去,什么原因啊,有遇到相同问题的人吗

无标题.png (69.25 KB, 下载次数: 314)

无标题.png

作者: 15822579256    时间: 2018-9-21 11:21
git reset -- hard 只到13%就结束了,什么问题?

无标题1.png (43.25 KB, 下载次数: 302)

无标题1.png

作者: yyj011    时间: 2018-10-2 15:50
谢谢分享,学习学习
作者: lindianfeng    时间: 2018-10-8 18:52
谢谢,lz的分享,我试试。。。
作者: wuwangbang    时间: 2018-10-16 10:14
非常好,学习了,感谢!
作者: firefly-001    时间: 2018-10-19 13:56
下载编译后的链接 bu ke yong le
作者: rk3399初学者    时间: 2019-4-22 22:12
谢谢 楼主分享
作者: Demon    时间: 2019-5-6 09:21

作者: lite    时间: 2019-6-4 19:26
学习了,谢谢分享
作者: dect    时间: 2019-6-14 13:56
学习了
作者: wx_Wilson_pzJKj    时间: 2019-6-22 10:32
编译源码和SDK 都可能出现 out of memory  和 Communication error with Jack server (52). Try 'jack-diagnose'  编译中断:所以我的习惯 先设置一下 内存大小 同时启动一下  Jack server  。
export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
out/host/linux-x86/bin/jack-admin kill-server
out/host/linux-x86/bin/jack-admin start-server   这步怎么操作??
作者: jl2019    时间: 2019-8-21 09:57
请问:我如何在lunch之后确定选择哪个编译选项?我们的板子是AIO-3399J。谢谢!
作者: monky    时间: 2019-8-30 11:59
正在看,谢谢分享




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1