1 准备工作

编译 Android 对机器的配置要求较高:

  • 64 位 CPU

  • 16GB 物理内存+交换内存

  • 30GB 空闲的磁盘空间用于构建,源码树另外占用大约 25GB

  • Ubuntu 14.04 操作系统
  • 八核i7,编译完成需要一个半小时

安装 JDK 7:
sudo apt-get install openjdk-7-jdk

Ubuntu 14.04 软件包安装:

sudo apt-fast install git-core gnupg flex bison gperf libsdl1.-dev libesd0-dev libwxgtk2.-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

安装 ARM 交叉编译工具链和编译内核相关软件包:

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

2 下载 Android SDK

百度云下载android sdk,然后使用git更新:

http://www.t-firefly.com/doc/download/page/id/4.html

解压:

cd ~/proj/firefly-rk3288-lollipop
tar xzf /path/to/firefly-rk3288_android5.1_git_20180126.tar.gz
git reset --hard

以后就可以直接从 bitbucket 处更新:

git pull bitbucket Firefly-RK3288:Firefly-RK3288

也可以到 https://bitbucket.org/T-Firefly/firenow-lollipop/commits/branch/Firefly-RK3288 在线浏览源码。

3 编译方法

官方脚本编译

firefly-rk3288 编译

./FFTools/make.sh -d firefly-rk3288 -j8 -l rk3288-userdebug
./FFTools/mkupdate/mkupdate.sh -l rk3288-userdebug

手动编译:

编译uboot

编译uboot:
cd u-boot/
make rk3288_box_defconfig
make -j8

编译内核:

cd /work/rk3288/firefly-rk3288-lollipop/kernel
make firefly-rk3288_defconfig
make firefly-rk3288.img -j8

编译 Android:

cd /work/rk3288/firefly-rk3288-lollipop/
source build.sh
lunch rk3288-userdebug
make -j8
./mkimage.sh

//打包固件

./FFTools/mkupdate/mkupdate.sh -l  rk3288-userdebug

Linux_Upgrade_Tool烧录工具在SDK RKtool文件夹中, 并按以下方法安装到系统中,方便调用:

unzip Linux_Upgrade_Tool_v1..zip
cd Linux_Upgrade_Tool_v1.
sudo mv upgrade_tool /usr/local/bin
sudo chown root:root /usr/local/bin/upgrade_tool

烧录打包固件

sudo upgrade_tool uf rockdev/Image-rk3288/Firefly-RK3288_Android5..1_Public_180810.img

先按下reload按键,再重启系统,即可进入烧录模式

 

RK3288编译 Android 5.1 固件的更多相关文章

  1. 编译android 4.4.2

    1.获取Android源码 (1)下载repo 在用户目录下创建一个bin文件夹来存放repo,并把该路径设置到环境变量中 mkdir ~/bin PATH=~/bin:$PATH 下载repo脚本 ...

  2. Visual Studio Xamarin编译Android项目出错的解决办法

    安装完Xamarin后,编译Android项目时,你会发现好长时间进度都不动,当你取消编译后,会发现其实是出错了,就是因在Android项目在第一次编译时要去google网站上下一个andorid s ...

  3. 在Mac mini上编译Android源码

    参考文章 1.Android 6.0 源代码编译实践 2.编译Android源码致命错误解决方案 实践过程 1.Mac下安装Ubuntu双系统 (1)Ubuntu版本:Ubuntu 15.10 注:实 ...

  4. 深入理解gradle编译-Android基础篇

    深入理解gradle编译-Android基础篇 导读 Gradle基于Groovy的特定领域语言(DSL)编写的一种自动化建构工具,Groovy作为一种高级语言由Java代码实现,本文将对Gradle ...

  5. [原]Ubuntu 14.04编译Android Kernel

    如何编译android kernel参考官方文档:https://source.android.com/source/building-kernels.html   在Ubuntu 14.04上编译a ...

  6. [原]编译Android源码过程中遇到的问题

    编译Android源码的过程参考Android官网介绍: 1.下载Android源码的步骤:https://source.android.com/source/downloading.html 2.编 ...

  7. 转:Android开发实践:用脚本编译Android工程

    转自: http://ticktick.blog.51cto.com/823160/1365947 一般情况下,我们都是使用Eclipse+ADT插件或者Android studio软件来编译Andr ...

  8. 深入浅出 - Android系统移植与平台开发(五)- 编译Android源码(转)

    2.3编译Android源码 Android源码体积非常庞大,由Dalvik虚拟机.Linux内核.编译系统.框架代码.Android定制C库.测试套件.系统应用程序等部分组成,在编译Android源 ...

  9. [转]编译Android源代码常见错误解决办法

    1. 编译时出现/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.5/../../../libz.so when ...

随机推荐

  1. Centos7 安装rar,unrar,zip,unzip

    1.yum 安装unrar # yum install unrar rar命令 # rar a test.rar test.jpg test.png 这条命令是将test.jpg和test.png压缩 ...

  2. 如何判断一个List集合中是否有空值

    list.Any(v => string.IsNullOrWhiteSpace(v))

  3. size - 列出段节大小和总共大小

    总览 (SYNOPSIS) size [-A|-B|--format=compatibility] [--help] [-d|-o|-x|--radix=number] [--target=bfdna ...

  4. 将word文档中的回车符进行删除

  5. PNG文件格式

    PNG文件的组成 一个PNG文件可以看作是由多个数据块(chunk)部分组成,如同积木一样,一个数据块就是一个小积木,不同类型的积木组合搭建成了我们的PNG图像. PNG图像至少由文件署名域和三个关键 ...

  6. WinForm解决UI假死

    运行WinForm程序时,如果后台执行比较费时的操作,前天UI就会假死卡住,很影响使用感受,这里我们简单的解决一下这个问题 using System; using System.Collections ...

  7. find和grep技巧

    1. find ./ -name "*streaming*"  查找文件 2.  grep -r KUBE_LOGTOSTDERR /etc/kubernetes/*  查找内容

  8. Laravel框架中如何使用事件记录SQL查询到日志

    在本文中,我们将说一下如何处理Laravel中的查询日志记录.如果你非常熟悉Laravel框架,Laravel可以选择将所有在当前请求中运行的查询记录在内存中. 查询记录 如果,你想要将日志文件保存在 ...

  9. 【Python CheckiO 题解】SP

    题目描述 [Speech Module]:输入一个数字,将其转换成英文表达形式,字符串中的所有单词必须以一个空格字符分隔. [输入]:一个数字(int) [输出]:代表数字的英文字符串(str) [前 ...

  10. Java 基础 - 自动装箱,valueOf装箱,new -->使用 == 和 equals比较

    总结 关于equals 比较  记住:equals方法比较的是真正的值 两个包装类比较,比较的是包装的基本数据类型的值 基本数据类型和包装类型比较时,会先把基本数据类型包装后再比较 (但是因为equa ...