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. Jquery的$.ajax、$.get、$.post发送、接收JSON数据及回调函数用法

    平时研究代码时,经常会遇到AJAX的相关用法,做项目时才真正体会到Ajax的强大之处(与服务器数据交互如此之便捷,更新DOM节点而不用刷新整个页面),以及运用的频繁程度.今天整理了一下自己之前没搞清楚 ...

  2. java.nio.Buffer 中的 flip()方法

    在Java NIO编程中,对缓冲区操作常常需要使用  java.nio.Buffer中的 flip()方法. Buffer 中的 flip() 方法涉及到 Buffer 中的capacity.posi ...

  3. gcc 交叉工具链中工具使用(arm-linux-xxx)

    在Ubuntu系统中使用 gcc 系列工具是在PC机上使用 arm-linux-gcc 编译的目标 是在 arm CPU上使用 一.安装交叉编译工具链 1. 编译工具怎么获取 1)从官网 http:/ ...

  4. [web设计]带有方向感应的hover effect

    See the Pen bdxLQa by jeremylee (@lijie33402) on CodePen. codepen不知道怎么嵌入到cnblogs..待编辑 参考资料 参考博客

  5. 用私有构造器或者枚举类型强化SingleTon(单例)属性

    单例(singleton)就是一个只实例化一次的类.使类成为单例可能会使它的测试变得困难,因为除非它实现了作为其类型的接口,否则不可能用模拟实现来代替这个单例.下面是几种实现单例的方法: 1.共有静态 ...

  6. node 下载 解压 重命名

    <!doctype html><html> <head> <meta charset="utf-8"> <title>注 ...

  7. Mysql 列变行其中一种做法。

    需求是: 上班打卡记录   和  下班打卡记录  是分别是两条数据,现在是要合并为一条数据,并且封装成一个实体. 有可能是 只有上班记录,,或者是只有下班的记录.如何关联全查,一边为null或者另一边 ...

  8. Linux 查看文件夹大小(排序)

    du -s * | sort -nr (-n是按数字大小排序,不能加上参数h)

  9. DM9000驱动网卡编程

    DM9000数据发送编程: static int dm9000_start_xmit(struct sk_buff *skb, struct net_device *dev) { unsigned l ...

  10. 【Flutter学习】页面跳转之路由及导航

    一,概述 移动应用通常通过成为‘屏幕’或者‘页面’的全屏元素显示其内容,在Flutter中,这些元素统称为路由,它们由导航器Navigator组件管理.导航器管理一组路由Route对象,并提供了管理堆 ...